我可以看到許多生成器類別http://www.roseindia.net/hibernate/hibernateidgeneratorelement.shtml 用於生成標識符。但是,如果我看增量和順序,我不知道有什麼區別,哪個更好?Hibernate生成器類增量vs序列?
2
A
回答
13
Sequence
使用數據庫序列(例如在Oracle中)來生成id,而increment
跟蹤jvm中的id並在進程內增加它。如果任何其他程序/人員要插入到數據庫表中,序列更安全。
要使用順序:
- 數據庫必須支持序列(甲骨文,DB2和PostgreSQL ...)
- 你應該創建一個序列(
CREATE SEQUENCE mySquence;
)
Increment
不太安全解決方案(但對那些不支持Sequence的數據庫而言是可移植的),並且適用於測試和/或入門。有比使用Increment
在生產中使用更好的方法(例如本地/身份等)。
3
我會使用自動生成的值。然後,Hibernate將爲您使用的數據庫產生最佳策略。
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
也意味着你可以在不改變你的實體的情況下測試像HsqlDB這樣的簡單內存數據庫。
+0
這不回答問題 – Karl
0
你可以試試這個行
@GenericGenerator(name = "increment", strategy = "increment")
@GeneratedValue(generator = "increment")
相關問題
- 1. 手動使用Hibernate序列生成器
- 2. 如何重置Hibernate序列生成器?
- 3. Hibernate生成類
- 4. Hibernate union-subclass(表每個具體類的表)生成器的「增量」非常慢?
- 5. 使用Hibernate Session.doWork生成序列ID
- 6. Hibernate序列生成的自定義
- 7. Hibernate工具生成類aproach
- 8. Hibernate @GeneratedValue不會像前面那樣生成自動增量值
- 9. 生成中的R遞增序列
- 10. 本機和增量id生成器類型的區別
- 11. 字符串生成器vs列表
- 12. 生成器vs列表理解
- 13. Hibernate 5的自定義序列生成器
- 14. 創建序列號hibernate生成器有什麼問題?
- 15. 如何在Hibernate/JPA中定義共享序列生成器?
- 16. 帶DB觸發器生成ID的Hibernate映射+序列號
- 17. 在自動增量的mysql中生成序列號
- 18. 在python中增量生成一個序列
- 19. XSLT生成增量值
- 20. 。增量vs + = 1
- 21. 屬性值的NHibernate生成器(來自序列或自動增量)
- 22. 如何從* .hbm.xml類生成Hibernate Mapping類
- 23. 動態表單生成VS增加新的類
- 24. 遞歸序列生成器
- 25. 異構序列生成器
- 26. 用matlab生成增量值的矢量
- 27. R stats - 生成增量變量
- 28. 代碼生成器vs ORM
- 29. 自動增量在Hibernate中
- 30. 使用ANT SCRIPT生成Hibernate POJO類
你能改寫這個問題?我不認爲我知道你在問什麼。 – brc