鉴于你有很多域对象,它们都互相交互,知道在特定事务中哪些对象发生了变化是非常有用的。
这可能吗?我想基本上这样做:
public void someBusinessLogicMethod(someparams) {
Session s = getSession();
Transaction tr = s.beginTransaction()
domainObject = s.load(...)
domainObject.setSomethingOrOther(...);
domainObject.getSomeLink().setSomethingElse(...);
callSomeOtherBusinessLogicMethod();
tr.commit();
/* at this point many objects have changed, Hibernate knows which ones */
for (Object s : tr.getAffectedObjects(?)) {
....
}
}
这是否存在?
答案 0 :(得分:0)
假设您想要为所有更改创建审核条目,可以使用Hibernate Listener或Interceptor。如果你在适当的时候挂钩了监听器/拦截器(例如onFlushDirty),你就可以访问已经改变的对象和属性。
更多信息:http://docs.jboss.org/hibernate/core/3.3/reference/en/html/events.html
希望这有帮助。