我正在尝试通过这个博客步骤来做到这一点。
http://leakfromjavaheap.blogspot.com.es/2013/08/prepersist-and-preupdate-not-working.html
但从Hibernate 4.3开始,hibernate-entitymanager. jar中的事件包被删除。
另一方面,我一直在阅读关于拦截器和事件的文章。http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html_single/#events
这只有两种方法来实现@PrePer的行为吗?或者可以将@EntityListeners注释与SessionFactory一起使用?。虽然我更喜欢win@PrePer的注释兼容性。
提前谢谢你。
在Hibernate 4中,您可以使用Integerator spi方法。
尽管hibernate团队建议使用JPA EntityManager,但有时您只想继续使用带有JPA注释的好的旧SessionFactory。
>
org. hibernate.jp.event.spi.jp集成商
参考:
arkuarku.wordpress.com/2014/10/23/spring-hibernate4-enable-jpa-prepersistpreupdate-annotation-using-sessionfactroy/
参见:
https://docs.oracle.com/javase/tutorial/sound/SPI-intro.html
http://in.relation.to/2012/01/09/event-listener-registration/
如果您真的需要继续使用SessionFactory-这是一个工作示例:Github链接
SessionFactoryImplementor sessionFactory = (SessionFactoryImplementor) sessionFactoryBean.getObject();
SessionFactoryServiceRegistry serviceRegistry = (SessionFactoryServiceRegistry) sessionFactory.getServiceRegistry();
Configuration configuration = sessionFactoryBean.getConfiguration();
new JpaIntegrator().integrate(configuration, sessionFactory, serviceRegistry);
注意:不要忘记添加hibernate-entitymanager
依赖项。