更新:
http://docs.jboss.org/hibernate/stable/entitymanager/reference/en/html/configuration.html
不确定这是否可以在应用服务器中设置,但我会试一试。唯一让我担心的是范围的管理。容器沿着事务边界管理范围
//inject entity manager
@Inject("mySpecialEntityManager")
EntityManager em;
//then mark the actual factory method in the factory bean with
@Produces("mySpecialEntityManager")
但是如何管理范围是个问题
2.2.2。引导
JPA 规范定义了一个引导程序来访问 EntityManagerFactory 和 EntityManager。引导类是 javax.persistence.Persistence,例如
Map configOverrides = new HashMap();
configOverrides.put("hibernate.hbm2ddl.auto", "create-drop");
EntityManagerFactory programmaticEmf =
Persistence.createEntityManagerFactory("manager1", configOverrides);
第一个版本相当于第二个带有空地图的版本。地图版本是一组优先于您的 persistence.xml 文件中定义的任何属性的覆盖。第 2.2.1 节“打包”中定义的所有属性都可以传递给 createEntityManagerFactory 方法,还有一些附加属性:
*
javax.persistence.provider to define the provider class used
*
javax.persistence.transactionType to define the transaction type used (either JTA or RESOURCE_LOCAL)
*
javax.persistence.jtaDataSource to define the JTA datasource name in JNDI
*
javax.persistence.nonJtaDataSource to define the non JTA datasource name in JNDI
*
javax.persistence.lock.timeout pessimistic lock timeout in milliseconds (Integer or String)
*
javax.persistence.query.timeout query timeout in milliseconds (Integer or String)
*
javax.persistence.sharedCache.mode corresponds to the share-cache-mode element defined in Section 2.2.1, “Packaging”.