我有一个EntityManagerProducer
,用于@Inject EntityManager
。我的EntityManagerProducer
类看起来像这样:
@ApplicationScoped
public class EntityManagerProducer {
@PersistenceContext(unitName = "default_unit")
@Produces
EntityManager em;
}
现在,每当我使用@Inject EntityManager
时,它就会按预期工作,并在default_unit
文件中照顾名为persistence.xml
的持久性单元。
我不明白的是为什么当我做这样的事情时,为什么期望相同的持久单元名称:
@Stateless
public class SomeClass {
@PersistenceContext(unitName="other_unit")
private EntityManager entityManager;
}
在persistence.xml
文件中,我仅定义了other_unit
。仅在使用@Inject
注释时才使用生产者吗?