2017-12-27 18 views
0

스프링 데이터 couchbase에서 내 문서에 ID 자동 생성을 만들고 싶습니다. 난에 대한 기록을 저장하려고하면 지금스프링 데이터 couchbase에서 ID는 어떻게 자동 생성됩니까?

public interface UserRepository extends CrudRepository<User, String> { 

} 

:이 생성 저장소를했습니다

@Document 
public class User { 
    @Id 
    @GeneratedValue(strategy = GenerationStrategy.USE_ATTRIBUTES, delimiter = ".") 
    private String id; 
    @IdPrefix(order=0) 
    private String userPrefix; 
    @IdSuffix(order=0) 
    private String userSuffix; 
    ... 
} 

: 여기

https://docs.spring.io/spring-data/couchbase/docs/current/reference/html/#couchbase.autokeygeneration 내 코드입니다 : 봄 문서는이에 대한 단계가 사용자 버킷 (userRepository.save (사용자)), 나는 다음받을 예외 :

java.lang.IllegalArgumentException: The Document ID must not be null or empty. 
    at com.couchbase.client.java.document.AbstractDocument.<init>(AbstractDocument.java:53) ~[java-client-2.3.7.jar:na] 
    at com.couchbase.client.java.document.RawJsonDocument.<init>(RawJsonDocument.java:149) ~[java-client-2.3.7.jar:na] 
    at com.couchbase.client.java.document.RawJsonDocument.create(RawJsonDocument.java:80) ~[java-client-2.3.7.jar:na] 
    at org.springframework.data.couchbase.core.CouchbaseTemplate.encodeAndWrap(CouchbaseTemplate.java:157) ~[spring-data-couchbase-2.2.9.RELEASE.jar:na] 
    at org.springframework.data.couchbase.core.CouchbaseTemplate.access$400(CouchbaseTemplate.java:87) ~[spring-data-couchbase-2.2.9.RELEASE.jar:na] 
    at org.springframework.data.couchbase.core.CouchbaseTemplate$11.doInBucket(CouchbaseTemplate.java:591) ~[spring-data-couchbase-2.2.9.RELEASE.jar:na] 
    at org.springframework.data.couchbase.core.CouchbaseTemplate$11.doInBucket(CouchbaseTemplate.java:586) ~[spring-data-couchbase-2.2.9.RELEASE.jar:na] 
    at org.springframework.data.couchbase.core.CouchbaseTemplate.execute(CouchbaseTemplate.java:536) ~[spring-data-couchbase-2.2.9.RELEASE.jar:na] 
    at org.springframework.data.couchbase.core.CouchbaseTemplate.doPersist(CouchbaseTemplate.java:586) ~[spring-data-couchbase-2.2.9.RELEASE.jar:na] 
    at org.springframework.data.couchbase.core.CouchbaseTemplate.save(CouchbaseTemplate.java:233) ~[spring-data-couchbase-2.2.9.RELEASE.jar:na] 
    at org.springframework.data.couchbase.core.CouchbaseTemplate.save(CouchbaseTemplate.java:228) ~[spring-data-couchbase-2.2.9.RELEASE.jar:na] 
    at org.springframework.data.couchbase.repository.support.SimpleCouchbaseRepository.save(SimpleCouchbaseRepository.java:86) ~[spring-data-couchbase-2.2.9.RELEASE.jar:na] 

...

도와주세요.

답변

0

자동 생성 키를 지원하지 않는 스프링 데이터 Couchbase 버전 2.2.9를 사용 중입니다.

당신은 당신이 (예를 들어 3.0.2 용) 이후 버전을 사용해야합니다 자동 생성 키

최신 버전 및 지침은 여기를 참조하십시오 : http://projects.spring.io/spring-data-couchbase/

+0

내가이 경우라고 생각하지 않습니다를. 2.2.9.RELEASE의 문서를 보면, 문서는 자동 생성 키를 언급합니다. 자동 구성이 누락 되었습니까? https://docs.spring.io/spring-data/couchbase/docs/2.2.9.RELEASE/reference/html/#couchbase.autokeygeneration – tunix

+0

사실 당신 말이 맞습니다. 곧이 답변을 삭제할 것입니다. :) – Mico

+1

Btw, 2.2.9의 설명서에 문제가 있다고 생각합니다. 주석은 있지만 키 생성에는 영향을 미치지 않습니다. 내가 PR을 볼 때, 3.0.x 브랜치에서 병합 된 것처럼 태그가 붙습니다. 따라서 Spring Data Couchbase 팀의 누군가가 뛰어 들어야합니다 :) 올바른 경로로 인도 한 몇 가지 의견 중 하나이기 때문에 의견을 삭제하지 마십시오. – tunix