【发布时间】:2018-03-26 00:07:58
【问题描述】:
我有一些在 JAX-RS 方法中创建和持久化的 JPA 实体。我有一个工作线程,随着时间的推移处理有关 JPA 中这些实体的一些数据,虽然我可以传入 Entity 对象,但我无法保留对它们的任何更改,因为进行更改的线程中的 EntityManager 始终为空。
包含我的工作线程的类声明如下:
public final class EntityService {
@PersistenceContext(type = PersistenceContextType.EXTENDED)
EntityManager entityManager;
EntityManager 始终为 null,即使它是从 JAX-RS 方法传入的,当线程有机会尝试使用 EM 时,EM 也为 null,因为 JAX-RS 方法已终止。
当注入不起作用时,如何将有效的实体管理器添加到我的 Service pojo 中?我正在使用 Hibernate 和 Wildfly 10
【问题讨论】:
-
您在保存方法中使用@Transactional 吗? EntityManager 不应该为空,你应该有问题是你的 spring 配置或者 bean 的加载方式
-
我没有spring配置,我没用spring。是野蝇。此外,EntityService 类不是托管 bean。
标签: java multithreading hibernate jpa