java如何在不更改hibernatemapping的情况下防止字段被更新
我在hibernate映射文件中有一个字段
<property name="dateAdded" column="date_added" type="java.util.Date"></property>
当我从上游收到更新时,我想防止该字段被更新。通常,理想情况下,我会告诉hibernate不要更新字段
<property name="dateAdded" column="date_added" type="java.util.Date" update="false"></property>
但映射是基本jar的一部分,我还没有说服所有者进行此更改
有没有一种干净的替代方法可以达到同样的效果
我试图避免将映射文件复制到我的项目中,对其进行更改并使用更改后的文件,或者编写大量代码来查找数据库中的记录,并将现有的dateAdded值应用于更新记录
# 1 楼答案
一个想法是编写一个拦截器(最好的方法是扩展EmptyInterceptor)并重写onFlushDirty方法:
你可以用
返回一个SessionBuilder,通过它可以获得hibernate会话
我不知道这是否是最好的方法,但它应该是有效的