Hibernate只读会话 - 更新实体

时间:2012-10-23 12:43:40

标签: java hibernate

我们已将所有会话设置为仅通过调用setDefaultReadOnly(true)来读取。但是,即使我们明确调用session.update(entity),我们的更新也不再有效。我可以看到为什么会发生这种情况,hibernate不知道这个实体是脏的。

我的问题是,如何告诉hibernate我已经对这个需要同步的实体进行了更改?我尝试将实体与session.merge(entity)合并,但这不起作用。

2 个答案:

答案 0 :(得分:0)

试试这个:

session.refresh(entity)

答案 1 :(得分:0)

在更改实体的状态之前,请将其设置为只读:session.setReadOnly(entity, false)

然后编辑实体,让flush / commit按照惯例进行脏检查。