@PostLoad
public void initThing() { ... }
我将它添加到我的实体,但它似乎在实体加载它没有被调用...
我在没有EJB的spring上下文中使用jpa Hibernate 3.2.7
我们已经在会话工厂的“entityInterceptor”中声明了一些hibernate拦截器(扩展了EmptyInterceptor)
是否可以混合两种类型的拦截器?
是否可以在没有EJB / EntityManager的情况下使用@PostLoad?
另一个原因?
答案 0 :(得分:1)
如果没有EJB / EntityManager,我不相信EJB注释。
答案 1 :(得分:0)
对于那些感兴趣的人,我收到了Steve Ebersole的回复,看来当你创建自己的hibernate SessionFactory时,你不能使用像@PostLoad这样的JPA注释而不在该会话工厂中注册相应的EventListener ...... 实际上,实体经理系统会为您完成所有这些工作。
所以我想我必须将EJB3PostLoadEventListener添加到会话工厂
但是在我的情况下,我必须为我的子项目提供这个,我将使用一个hibernate拦截器,因为它们可以是会话作用域,并且还在一个覆盖的Spring HibernateTemplate声明中注入了这个拦截器