提问者:小点点

将Hibernate 4.3与SessionFactory配置为使用@PrePer和


我正在尝试通过这个博客步骤来做到这一点。

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的注释兼容性。

提前谢谢你。


共2个答案

匿名用户

在Hibernate 4中,您可以使用Integerator spi方法。

尽管hibernate团队建议使用JPA EntityManager,但有时您只想继续使用带有JPA注释的好的旧SessionFactory。

>

  • 包含org. hibernate:hibernate-entitymanager作为依赖项(假设您使用的是maven,pom片段如下): <区块引用>

    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依赖项。