Обновление:
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”.