这些jar都是新发布的,并且具有针对Java EE应用程序的最新解决方案。但是我在hibernate.cfg.xml中指定休眠监听器时遇到问题。
在春季3.1.0之前,LocalSessionFactroyBean它拥有一个保留事件监听器的属性。但是对于3.1.0.release,没有事件监听器映射。现在,我无法在saveorupdate,postload等上跟踪模态对象,因为它们不是由Spring配置的。您有解决此问题的想法吗?
LocalSessionFactroyBean
我遇到了同样令人沮丧的问题。Hibernate 4似乎从根本上改变了您注册事件的方式,而Spring组尚未赶上。这是我的基于注释的解决方案,使用init方法注册侦听器:
@Component public class HibernateEventWiring { @Autowired private SessionFactory sessionFactory; @Autowired private SomeHibernateListener listener; @PostConstruct public void registerListeners() { EventListenerRegistry registry = ((SessionFactoryImpl) sessionFactory).getServiceRegistry().getService( EventListenerRegistry.class); registry.getEventListenerGroup(EventType.POST_COMMIT_INSERT).appendListener(listener); registry.getEventListenerGroup(EventType.POST_COMMIT_UPDATE).appendListener(listener); } }
拦截器是另一种很好的方法,但是错误地放弃了对拦截器的支持:https : //jira.springsource.org/browse/SPR-8940