Hibernate Transaction信息

时间:2010-10-17 17:10:18

标签: java hibernate transactions properties

鉴于你有很多域对象,它们都互相交互,知道在特定事务中哪些对象发生了变化是非常有用的。

这可能吗?我想基本上这样做:

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(?)) {
    ....
  }
}

这是否存在?

1 个答案:

答案 0 :(得分:0)

假设您想要为所有更改创建审核条目,可以使用Hibernate Listener或Interceptor。如果你在适当的时候挂钩了监听器/拦截器(例如onFlushDirty),你就可以访问已经改变的对象和属性。

更多信息:http://docs.jboss.org/hibernate/core/3.3/reference/en/html/events.html

希望这有帮助。