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

自動生成キーをサポートしていないSpring Data 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

関連する問題