繁体   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