告诉 Hibernate 忽略脏检查中的属性

pvr*_*pvr 5 java hibernate

这几天我一直在想办法解决这个问题。遗憾的是,hibernate 没有提供随时可用的注释来将属性排除在脏检查之外。问题是这样的,我有一个类如下

Class A {
@Column 
Property 1
@Column 
Property 2..etc

@Column
Date lastUpdateDate
@Column
String lastUpdateBy
}
Run Code Online (Sandbox Code Playgroud)

我想从脏检查中排除lastUpdateDate和lastUpdateBy!这就是我正在做的事情

  1. 使用动态更新= true

  2. 使用拦截器并重写 findDirty 方法来告诉 hibernate 对象是否脏(这里, previousState 始终为 null,因为对象是瞬态的,因此无法比较旧值)

  3. merge 可以解决问题,但会导致性能问题(几百万条记录),所以我必须使用 saveOrUpdate ,它不会将 previousState 传递给 Interceptor

还有其他方法可以解决这个问题吗?

Jos*_*lle -1

尝试将 updateable=false 添加到您的@Column。它会导致该字段不包含在更新语句中,因此我认为它会将其排除在脏检查之外。

查看此链接:

@javax.persistence.Column(可更新= false)