如何以编程方式没有persistence.xml”配置transaction-type =“ JTA”?

问题描述

在没有任何.xml配置的配置java类中创建transaction-type "JTA"时可以设置EntityManagerFactory吗?

解决方法

您可以尝试以这种方式覆盖javax.persistence.transactionType属性:

Map configOverrides = new HashMap();
configOverrides.put("javax.persistence.transactionType","JTA");
EntityManagerFactory emf = Persistence.createEntityManagerFactory("yourPersistenceUnitName",configOverrides);

但是,如果您的类路径中缺少PersistenceException文件,似乎会引发META-INF/persistence.xml异常。

请参见documentation 2.2.2。自举部分)。