【发布时间】:2014-06-06 12:03:36
【问题描述】:
我想知道采取哪种方法来防止 Hibernate 4.3.4(使用 Spring 和 Hibernate Vaidator)刷新脏实体。 在我的代码中,我使用了 Hibernate Validator 的手动实现(实例本身内的 .validate() 方法),它在保存实体之前被调用。 validate() 方法返回一个错误列表(如果发现),否则调用 Session.update() 来存储实体,然后提交事务。
这可行,但是当实例本身被操纵(在实体中设置发布/请求参数)时,实体和相应的 Hibernate 会话被标记为“脏”,并且实体与下一个 Session.flush() 一起存储。
就我而言,我想明确控制可能存储的实体并防止存储任何脏实体,我将如何实现这一点?
编辑:
我知道我可以通过驱逐实体(或通过合并清除并重新引入实体)来手动调节这一点,但这不是我的目标。而不是必须手动调节持久性,我希望有这样的偏移情况,即没有明确保存且未明确提交事务的实体不会被存储到数据库中(例如,通过拦截器?)。
【问题讨论】:
标签: java hibernate session validation