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