我想知道如何处理才能防止Hibernate 4.3.4(带有Spring和Hibernate Validator)刷新已更改的实体。在我的代码中,我使用了Hibernate Validator的手动实现(实例内部的.validate()方法),该方法在保存实体之前被调用。如果发现错误,则validate()方法返回错误列表,否则将调用Session.update()来存储实体,随后是事务提交。
这个方法可以工作,但当实例本身被操作时(例如,请求参数在实体中设置),实体和相应的Hibernate会话被标记为“已更改”,并且下一个Session.flush()会将实体存储起来。
在我的情况下,我希望对可能被存储的实体进行明确的控制,并防止存储任何脏实体,请问我该如何做到这一点?
编辑: 我知道我可以通过逐出实体(或通过合并清除并重新引入实体)手动管理此过程,但这不是我的目的。我希望具有偏移量的情况,即未明确保存并且事务未明确提交的任何实体都不会存储到数据库中(例如,通过拦截器)。
在我的情况下,我希望对可能被存储的实体进行明确的控制,并防止存储任何脏实体,请问我该如何做到这一点?
编辑: 我知道我可以通过逐出实体(或通过合并清除并重新引入实体)手动管理此过程,但这不是我的目的。我希望具有偏移量的情况,即未明确保存并且事务未明确提交的任何实体都不会存储到数据库中(例如,通过拦截器)。