【发布时间】:2013-01-03 13:27:10
【问题描述】:
我有 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 而不是合并编写的,所以我真的需要它来处理现有代码。
有人可以帮忙吗?
【问题讨论】:
-
是SQL查询还是HQL查询?
标签: java spring hibernate jboss hibernate-envers