簡體   English   中英

在休眠保存對象之前從序列獲取生成的ID

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM