我有一个关于在 EJB、Spring 和 Hibernate 的上下文中使用事务管理器的问题。在我们的项目中,我们有一个用注解@TransactionAttribute(TransactionAttributeType.REQUIRED) 标记的无状态EJB。到目前为止,还没有定义进一步的交易。
现在每个 EJB 都调用一个服务。后者只是将调用重定向到最终 DAO 的委托。在每个 DAO 中,我们都使用 HibernateTemplate:问题是会话在 DAO 内的每个 get/load 方法之后很快关闭。为什么?
如果我用经典的 Hibernate 会话(最佳方法)替换 HibernateTemplate 并调用 getSession().getTransaction().isActive() 我总是错误,但会话仍然处于活动状态,直到服务调用结束(代表上文提到的)。在此之后,会议结束。为什么我会有这种不同的行为?Spring/hibernate 不能看到 EJB 事务属性吗?
提前致谢。
法比奥