gpt4 book ai didi

java - 从持久性 API 使用 EntityManagerFactory

转载 作者:行者123 更新时间:2023-12-02 09:45:17 26 4
gpt4 key购买 nike

我想从 jee 环境中的 Persistence 接口(interface)获取 EntityManagerFactory 实例。但是规范链接:https://docs.oracle.com/javaee/7/api/javax/persistence/Persistence.html

说明以下内容

Persistence 类也可在 Java EE 容器环境中使用;但是,容器环境中不需要支持 Java SE 引导 API。

这是否意味着我们不应该在 java EE 环境中使用 Persistence.createEntityManagerFactory ?

注意:我已经在 WAS 8.5.5 和 JBOSS EAP 7 上进行了测试,并且能够成功获取 EntityManagerFactory 并执行数据库持久化。我想知道根据规范,容器是否可能会停止对此 API 的支持?

最佳答案

如果我正确理解您的评论,您的问题是数据源在某种程度上是动态的,因此您希望使用引导 API 来创建 EntityManagerFactory,而不是通过 persistence.xml “EE 方式”配置它

您的数据源到底有多动态?您正在运行什么 EE 容器?您也许能够在容器配置中(即在服务器上)配置数据源,并让您的entitymanagerfactory 由容器创建或通过JNDI 自动获取数据源。

在前雇主那里,我们运行了 Wildfly,并在每台服务器上的 Wildfly 配置中配置了数据源,让 Wildfly 在标准位置提供数据源,以便 Hibernate 拾取并构建 EMF。

参见https://stackoverflow.com/a/41550908/691074类似设置的示例。

这使我们能够在连接到不同数据库的不同服务器上运行相同的代码(即测试、生产等)

默认的 Wildfly 配置已经配置了内存中的 H2 数据库,您可以修改它以指向正确的方向。

Here是有关数据源配置的 Wildfly 10 文档和 here是对 persistence.xml 的解释,其中包含引用容器管理的数据源的示例。

这对您的情况有用吗?

关于java - 从持久性 API 使用 EntityManagerFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56708342/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com