Spring支持PersistenceContextType.EXTENDED吗?
@Stateful EJB 可以使用 PersistenceContextType.EXTENDED 在多个事务中重用同一个 EntityManager。这对于实现对话范围很有用。 Spring对此有支持吗?
A @Stateful EJB can use PersistenceContextType.EXTENDED for reusing the same EntityManager across multiple transactions. This is useful in implementing conversational scopes. Does Spring have any support for this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
基于普通 JPA 实现 DAO:
所以不,听起来 Spring 不支持它们。
There is a short discussion of this in Implementing DAOs based on plain JPA:
So no, it doesn't sound like Spring supports them.
是的,Spring支持它。例如,请参阅使用 PersistenceContextType EXTENDED 注入 PersistenceContext。
Yes, Spring supports it. See, for example, Injection of PersistenceContext with PersistenceContextType EXTENDED.
Spring 有一个带有静态工厂方法的特殊类,用于创建扩展实体管理器。请参阅 ExtendedEntityManagerCreator
此外,如果您注入
EntityManagerFactory
并调用createEntityManager(SynchronizationType.SYNCHRONIZED)
,它将创建具有扩展持久性上下文的实体管理器(提交后不会自动分离实体)的交易)。Spring has a special class with static factory methods for creation of extended entity managers. See ExtendedEntityManagerCreator
Also, if you inject an
EntityManagerFactory
and invokecreateEntityManager(SynchronizationType.SYNCHRONIZED)
it will create the entity manager with extended persistence context (it will not automatically detach entities after commit of transaction).