Hibernate Информация о транзакции - PullRequest
0 голосов
/ 17 октября 2010

Учитывая, что у вас много доменных объектов, которые все взаимодействуют друг с другом, было бы очень полезно узнать, какие объекты изменились в конкретной транзакции.Я хотел бы по существу сделать это:

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 голосов
/ 19 октября 2010

Если вы хотите сделать что-то вроде создания записей аудита для всех изменений, вы можете использовать Hibernate Listener или Interceptor. Если вы подключите прослушиватель / перехватчик в нужный момент (например, onFlushDirty), вы получите доступ к объектам и свойствам, которые изменились.

Подробнее: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/events.html

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...