【发布时间】:2019-11-04 14:15:52
【问题描述】:
我想在 jee 环境中从 Persistence 接口获取 EntityManagerFactory 实例.. 但规范链接:https://docs.oracle.com/javaee/7/api/javax/persistence/Persistence.html
陈述如下
Persistence 类在 Java EE 容器环境中也可用;但是,容器环境中不需要支持 Java SE 引导 API。
这是否意味着我们不应该使用 Persistence.createEntityManagerFactory 而不是在 java EE 环境中使用?
注意:我已经在 WAS 8.5.5 和 JBOSS EAP 7 进行了测试,并且能够成功获取 EntityManagerFactory 并执行 DB 持久性。我想知道容器是否可以按照规范停止对这个 API 的支持?
【问题讨论】:
-
我试图弄清规范。我很想知道投反对票的原因
-
首先,“不需要”仅表示使用此 API 可能无法在 JavaEE 实现之间移植。通常你会@Inject 你的EntityManagerFactory,或者更好,只是一个EntityManager。
-
嗨,史蒂夫,配置的数据源名称是动态的,我无法在 persistence.xml 中对其进行硬编码。为了能够使用 a.mappong 文件或自定义数据源查找,我需要动态设置它们,并且我可以使用 Persistence.createEntotyManagerFactory API 来实现这一点。此外,考虑到在部署环境中生成的动态数据源名称的变化,我不能选择维护多个 Persistence.xml。
标签: java jpa jakarta-ee persistence