我使用@Id
註釋設置文檔,在我的測試中,我得到一個MappingException
,因爲在創建新文檔時未設置Id。 spring-data + couchbase無法爲新文檔自動分配ID嗎?彈簧數據Couchbase:自動生成ID
1
A
回答
3
Couchbase中沒有ID的自動生成,所以您需要設置一個。
請記住,Couchbase可以將異構數據存儲在同一個Bucket
中,所以默認情況下,如果您有多種類型的實體,它們將最終存儲在同一個存儲單元中。因此,如果你有例如。 User
和Product
個實體,創建並保存User
其中@Id
是「foo」,那麼0123'也會被id-ed「foo」最終將用Product
覆蓋User
。
我的意思是,您必須提供@Id
和確保沒有ID衝突,即使在實體類中也是如此。
0
此外,還有一個可用於Couchbase Java SDK的UUID Generator,可以幫助您。
有關於UUID here的討論。
0
您可以使用Java生成唯一的UUID。這將由Java生成UUID。可以在Couchbase PK中作爲唯一使用。
@Document
public class BasicEntity {
@Id
@Field
private String _id;
/**
* @return the _id
*/
public String get_id() {
return _id;
}
/**
*/
public void set_id() {
this._id = UUID.randomUUID().toString();
}
}
1
+0
我無法得到這個工作。在這裏發佈的問題:https://stackoverflow.com/questions/47998493/how-are-ids-autogenerated-in-spring-data-couchbase請幫助。 – User1230321
相關問題
- 1. 彈簧引導數據redis集成彈簧數據jpa
- 2. 彈簧集成 - 控制自動啓動
- 3. Couchbase彈簧中的原子計數器
- 4. 彈簧安全oauth2手動生成authcode
- 5. 自動生成ID
- 6. 生成自動ID
- 7. 自動生成ID
- 8. 如何使用彈簧數據solr實現自動完成
- 9. Couchbase轉換器彈簧數據混淆整數長
- 10. 彈簧集成自動關機
- 11. 沒有獲得彈簧安全自動生成登錄頁
- 12. 彈簧數據couchbase拋出DocumentDoesNotExistException不存在的文件
- 13. 樂觀鎖定不適用於彈簧數據couchbase @version
- 14. 如何獲得自動的ID生成的ID從數據庫
- 15. 彈簧批量彈簧數據
- 16. 自動生成的ID
- 17. 生成自動ID IdGeneratorStrategy
- 18. 防止ID自動生成
- 19. 彈簧啓動與彈簧數據休息配置錯誤
- 20. 自動生成字母數字ID
- 21. 彈簧自動佈線
- 22. 彈簧自動佈線類
- 23. 生成源中的彈簧數據編譯錯誤
- 24. 查看使用彈簧數據生成的查詢 - jpa
- 25. 彈簧引導jpa - 生成並保存測試數據
- 26. 彈簧數據aerospike
- 27. 我可以使用彈簧數據couchbase從副本讀取數據嗎?
- 28. 來自數據庫的彈簧配置
- 29. 混合彈簧數據jpa +彈簧數據neo4j。 users服務
- 30. 與彈簧集成啓動競賽條件彈簧批次
是的,使用Couchbase的原子計數器文檔可以用於生成ID序列。除非在每種類型的文檔中使用相同的計數器,否則您仍然需要例如。使用前綴來確保id的唯一性。 –