繁体   English   中英

JPA-如何在openjpa中复制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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM