在 Hibernate 中创建 UPDATE RETURNING 查询

hyp*_*oad 5 java database oracle hibernate

在 Oracle 中,我们可以创建一个更新查询,该查询将使用 RETURNING 子句返回更新的记录。

Hibernate 中是否有类似的功能?

tsc*_*cho 1

除了数据库生成的值之外,Hibernate 显然不需要返回更新的实例,因为传递到的对象Session.saveOrUpdate() 更新的实例。数据库生成的值(序列、触发器、默认值等)将在经过相应注释(或在 XML 映射文件中定义)后进行设置。 Session.saveOrUpdate

对于标识符值,@javax.persistence.GeneratedValue请结合使用 JPA注释和 JPA@javax.persistence.Id注释。对于简单属性,请使用本机 Hibernate@org.hibernate.annotations.Generated注释(据我所知,没有相应的 JPA 注释)。

Hibernate 如何检索生成的标识符值取决于生成策略和/或数据库方言。对于简单属性,Hibernate 在or之后执行附加的SELECTby id 语句。INSERTUPDATE