Glassfish 重写persistence.xml属性

Glassfish 重写persistence.xml属性,glassfish,jpa-2.0,eclipselink,Glassfish,Jpa 2.0,Eclipselink,在Glassfish应用服务器上运行应用程序时,覆盖EclipseLinkpersistence.xml属性的正确方法是什么 我们需要在一个单独的配置文件中配置一些属性,该文件可供客户端使用 我没有找到任何接受某些用户属性的EclipseLink特定类。我只找到了Glassfish PersistenceUnitLoader类,为了实现这一点,可以对其进行调整。但这将是一个丑陋的黑客:)您可以在运行时创建自己的EntityManager: Map map = new HashMap();

在Glassfish应用服务器上运行应用程序时,覆盖EclipseLink
persistence.xml
属性的正确方法是什么

我们需要在一个单独的配置文件中配置一些属性,该文件可供客户端使用


我没有找到任何接受某些用户属性的EclipseLink特定类。我只找到了Glassfish PersistenceUnitLoader类,为了实现这一点,可以对其进行调整。但这将是一个丑陋的黑客:)

您可以在运行时创建自己的EntityManager:

Map map = new HashMap();  

map.put("javax.persistence.jdbc.password", "password");  
map.put("javax.persistence.jdbc.user", "root");  

EntityManagerFactory emf = Persistence.createEntityManagerFactory("MyPU",map);  
EntityManager em = emf.createEntityManager(map);  
某些eclipselink属性名称:

  <property name="eclipselink.target-database" value="DERBY"/>
  <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
  <property name="eclipselink.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
  <property name="eclipselink.jdbc.url" value="jdbc:derby://localhost:1527/02DB;create=true"/>
  <property name="eclipselink.jdbc.user" value="user"/>
  <property name="eclipselink.jdbc.password" value="password"/>

您可以在运行时创建自己的EntityManager:

Map map = new HashMap();  

map.put("javax.persistence.jdbc.password", "password");  
map.put("javax.persistence.jdbc.user", "root");  

EntityManagerFactory emf = Persistence.createEntityManagerFactory("MyPU",map);  
EntityManager em = emf.createEntityManager(map);  
某些eclipselink属性名称:

  <property name="eclipselink.target-database" value="DERBY"/>
  <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
  <property name="eclipselink.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
  <property name="eclipselink.jdbc.url" value="jdbc:derby://localhost:1527/02DB;create=true"/>
  <property name="eclipselink.jdbc.user" value="user"/>
  <property name="eclipselink.jdbc.password" value="password"/>


是的,但正如我所说,我在容器中运行我的应用程序,所以我注入EntityManager而不是自己创建它。我同意,对于JavaSE,您的方法就足够了。但无论如何,还是要感谢你的建议。是的,但正如我所说,我在容器中运行我的应用程序,所以我注入EntityManager而不是自己创建它。我同意,对于JavaSE,您的方法就足够了。不过还是要谢谢你的建议。