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

How to configure transaction-type="JTA" programmatically (without persistence.xml")?

我可以在配置 java class 中创建 EntityManagerFactory 时设置 transaction-type "JTA" 而无需任何 .xml 配置吗?

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

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

但是如果 META-INF/persistence.xml 文件在您的类路径中不存在,看起来会引发 PersistenceException 异常。

请参阅 documentation2.2.2 部分。自举)。