在Oracle中,我们可以创建一个更新查询,使用RETURNING子句返回更新的记录。
Hibernate中是否有类似的功能?
答案 0 :(得分:0)
除了数据库生成的值之外,显然不需要Hibernate返回更新的实例,因为传递给Session.saveOrUpdate()
的对象是更新的实例。如果相应地注释(或在XML映射文件中定义),数据库生成的值(序列,触发器,默认值等)将在 Session.saveOrUpdate
之后设置。
对于identifier values,请将JPA @javax.persistence.GeneratedValue
注释与JPA @javax.persistence.Id
注释结合使用。对于simple properties使用原生Hibernate @org.hibernate.annotations.Generated
注释(afaik没有根据JPA注释)。
Hibernate如何检索生成的标识符值取决于生成策略和/或数据库方言。对于简单属性,Hibernate在SELECT
或INSERT
后执行额外的UPDATE
个id语句。