如何解决Hibernate Envers-不为createQuery...executeUpdate编写审核记录,仅.persist和.merge
看起来 是正确的-如果要创建本机SQL查询,请使用的createNativeQuery(String
sqlString)
方法EntityManager
。使用createQuery(String ejbqlString)
如果您正在使用EJB
QL是唯一可能的。希望这会有所帮助。
解决方法
我有3种方式将内容写入数据库
public void create(T object) {
entityManager.persist(object);
}
public void update(T object) {
object = entityManager.merge(object);
}
public int updateStatus(String id,String status) {
final int changes =
entityManager.createQuery("update item set state = :newState," +
" last_modified = current_timestamp" +
" where id = : id ")
.setParameter("newState",status)
.setParameter("id",id)
.executeUpdate();
return changes;
}
我遇到的问题是为了让Hibernate Envers实际将审核记录写入相应的x_aud和revinfo DB表中。它仅适用于“ .persist()”或“
.merge()”。我无法使其适用于’createQuery(…). executeUpdate() ‘
我是否缺少某些东西,或者只是无法使用?问题是,我的很多代码都是使用.executeUpdate编写的而不是合并的,所以我确实需要使用它来处理现有代码。
有人可以帮忙吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。