Использование hibernate 3.3.2.ga и Spring 3.0.5.RELEASE.
Реализовано что-то, как описано здесь ..
с другим конфигом, как у меня; я использую Spring управляемого sessionFactory
<bean id="sessionFactoryPGAD" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSourcePGAD"/>
.......
.......
<property name="eventListeners">
<map>
<entry key="save-update"><ref local="auditEntityListener" /></entry>
</map>
</property>
добавить аудит, когда мои DAO звонят
...getCurrentSession().saveOrUpdate(...
Однако в моем расширенном DefaultSaveOrUpdateEventListener (bean-компонент audEntityListener) мне было интересно, есть ли способ определить, является ли объект, сохраняемый в БД, новой записью или обновлением существующей?
Я пытался посмотреть на
EntityEntry entityEntry = event.getEntry();
if (entityEntry.isExistsInDatabase())
{.....
но entityEntry равен нулю для сущности, которая, как я знаю, существует в БД.
Другие методы SaveOrUpdateEvent, такие как getRequestedId () и getResultId (), также возвращают ноль.
Как я могу определить, будет ли вызов hibernate вставкой или обновлением из DefaultSaveOrUpdateEventListener?