![](/img/trans.png)
[英]Get generated entity Id before persisting, Hibernate, Spring data
[英]Get generated id from a sequence before hibernate saves the object
如何在休眠保存對象之前獲取對象的生成ID。 這是代碼:
@Id
@SequenceGenerator(name="MY_SEQ", sequenceName="MY_SEQ", allocationSize=1 )
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="MY_SEQ")
private long id;
有什么辦法可以在不使用currval('MY_SEQ')的情況下執行此操作?
謝謝
結合使用JPA @SequenceGenerator和傳統的Hibernate標識符,將為您提供SequenceHiLoGenerator ,它無論如何都會應用HI / LO優化算法 。
但是對於序列,實際標識符值是在flush-time期間應用的,因此直到會話被刷新(手動刷新或提交時刷新)后,您才能獲得實際值。
對於IDENITY生成器,您將獲得在刷新之前生成的標識符,但這會禁用JDBC批處理,因此它也不是子彈頭。
如果要完全控制,則需要使用分配的標識符,並且UUID代理鍵非常適合此工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.