各种来源(例如Oracle)表示您必须在persistence.xml中为通过<property name="javax.persistence.jdbc.url" value="..."/>
之类的内容使用JPA的Java SE应用程序指定jdbc连接详细信息。
当您想要针对不同的数据库运行应用程序时,这是一个真正的痛苦,例如本地,测试和生产。我目前通过拥有多个持久性单元来实现这一目标,这些单元实际上是相同但具有不同的连接细节,然后让应用程序根据其运行的环境选择正确的持久性单元。
问题是:
<class>MyClass</class>
。我宁愿只指定一次。您知道配置持久性的更好方法吗?有没有办法让<jta-data-source>
或<non-jta-data-source>
在Java SE环境中做适当的事情?
答案 0 :(得分:1)
你可以在代码中手动配置
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();