【发布时间】:2012-08-17 14:41:53
【问题描述】:
我实现了一个 Hibernate 拦截器(扩展 EmptyInterceptor)并实现了 onFlushDirty 方法,以便在保存对象时将对象的属性设置为 null。代码如下所示:
public boolean onFlushDirty(...) {
// looking for the property index
int i = 0;
for (i=0; i<propertyNames.length; i++) {
if ("someProperty".equals(propertyNames[i])) {
break;
}
}
// setting it to null
currentState[i] = null;
不幸的是,即使我取消了该对象,该记录仍会保存到数据库中。奇怪的是,当我修改该对象时,更改会保存到数据库中。
对象和属性都是实体。
【问题讨论】:
-
您确定正在调用拦截器吗?你能放置一个系统输出并确认吗?
-
是的,正在调用拦截器。我已经使用 sysout 和调试器进行了检查。
标签: hibernate interceptor