我遇到了同样的问题,并为该方法添加了注释,
@Transactional并且该方法有效。
更新:检查spring文档,默认情况下PersistenceContext看起来是Transaction类型,因此这就是为什么该方法必须是事务性的(http://docs.spring.io/spring/docs/current/spring-framework-reference/ html / orm.html):
@PersistenceContext批注具有可选的属性类型,默认为PersistenceContextType.TRANSACTION。此默认设置是你需要接收共享的EntityManager代理的条件。替代方案PersistenceContextType.EXTENDED是完全不同的事情:这导致所谓的扩展EntityManager,它不是线程安全的,因此不能在并发访问的组件(例如Spring管理的Singleton bean)中使用。扩展的EntityManager仅应用于有状态的组件(例如,驻留在会话中),并且EntityManager的生命周期不依赖于当前事务,而完全取决于应用程序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)