繁体   English   中英

SE应用程序的JPA persistence.xml数据源

[英]JPA persistence.xml data-source for SE app

各种来源(例如Oracle )都说您必须在persistence.xml中为Java SE应用程序指定jdbc连接详细信息,这些Java SE应用程序通过<property name="javax.persistence.jdbc.url" value="..."/>

当您想针对不同的数据库(例如本地,测试和生产)运行应用程序时,这确实是一个痛苦。 我目前通过拥有多个持久性单元来有效地解决这个问题,这些持久性单元实际上是相同的,但是具有不同的连接详细信息,然后使该应用程序根据其所运行的环境选择正确的持久性单元。

问题是:

  • 配置重复。 当我添加实体类时,我必须向每个持久性单元添加<class>MyClass</class> 我宁愿只指定一次。
  • 与应用程序打包在一起的数据库连接配置。 如果要更改环境中使用的数据库,则需要弄弄persistence.xml并重新构建应用程序。 我希望在每个环境中都有一个配置文件,用于指定数据库凭据。 这样,我可以有很多环境,但只定义了一个持久性单元,并且可以通过只在给定环境中编辑一个文件然后重新启动应用程序来更改给定环境的数据库凭据。

您知道配置持久性的更好方法吗? 是否可以通过某种方式使<jta-data-source><non-jta-data-source>在Java SE环境中执行适当的操作?

您可以在代码中手动配置它

Map<String, String> props = new HashMap<String, String>();
props.put("javax.persistence.jdbc.url", "YourURL");
EntityManagerFactory emf = Persistence.createEntityManagerFactory("UnitName", props);
EntityManager em = emf.createEntityManager();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM