![](/img/trans.png)
[英]How to replicate INSERT/UPDATE/DELETE statements using JPA and Hibernate
[英]JPA - how to replicate update versioned query of Hibernate in openjpa
我正在尝试在Openjpa中复制Hibernate的“更新版本”行为:
em.createQuery("update versioned MyEntity m set m.otherEntity=null where m.otherEntity=:otherEntity).setParameter("otherEntity", otherEntity).executeUpdate();
我在openjpa中尝试了相同的查询,但是此查询出现错误(它将“版本化”作为别名),因此它显然是HQL功能。
休眠规格:
为了符合EJB3规范,默认情况下,HQL UPDATE语句不影响受影响实体的版本或时间戳属性值。 但是,您可以强制Hibernate通过使用版本更新来重置版本或时间戳属性值。 这是通过在UPDATE关键字之后添加VERSIONED关键字来实现的。
因此HQL在OpenJpa中可以选择使用版本更新来重置版本:
批量更新将直接映射到数据库更新操作,从而绕开了乐观锁定检查。 便携式应用程序必须根据需要手动更新version列的值,和/或手动验证version列的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.