Jpa 体育教学中的jta与非jta
如果我在persistence.xml中同时提到jta和非jta数据源,那么提供者将如何确定使用什么以及何时使用?有没有办法在特定场景中强制使用非jta数据源?我正在使用IBM支持的OpenJPA 一些提供程序允许同时声明jta数据源和非jta数据源,并使用后者通过非jta连接进行优化读取(即,不会与正在进行的jta事务关联)。这是如何工作的,OpenJPA是否支持这一点?Jpa 体育教学中的jta与非jta,jpa,jta,Jpa,Jta,如果我在persistence.xml中同时提到jta和非jta数据源,那么提供者将如何确定使用什么以及何时使用?有没有办法在特定场景中强制使用非jta数据源?我正在使用IBM支持的OpenJPA 一些提供程序允许同时声明jta数据源和非jta数据源,并使用后者通过非jta连接进行优化读取(即,不会与正在进行的jta事务关联)。这是如何工作的,OpenJPA是否支持这一点? 很难理解为什么在persistence.xml中同时提到jta和非jta数据源。您不需要同时声明这两个数据源,您可能需要声
很难理解为什么在persistence.xml中同时提到jta和非jta数据源。您不需要同时声明这两个数据源,您可能需要声明一个jta或非jta数据源。如果您使用jta数据源,您将在应用程序服务器中配置它,并在persistence.xml中声明。如果您不能使用jta数据源,您将在persistence.xml中配置JDBC连接
java:JTA_DS
java:非JTA-DS
现在,您可以为各个持久性单元创建EnityManager
@PersistenceContext(unitName=“JTA\u DS”)
私有实体管理器代码>
@PersistenceContext(unitName=“NON_JTA_DS”)
private EntityManager\u nonjtmanager代码>
EntityManagerFactory
。有关更多详细信息,请参阅链接似乎有些提供者优化了使用非jta数据源来执行不需要包含在事务中的查询。下面的URL有一个例子。希望了解这是如何工作的,以及这是否有效。-一些提供程序甚至允许同时声明jta数据源和非jta数据源,并使用后者通过非jta连接进行优化读取(即,不会与正在进行的jta事务相关联)。您知道是否可以安全地将同一数据源用于两个持久化单元?我试过了,似乎效果不错。@JaqenH'ghar它依赖于供应商,很少有人会支持它。可以参考这里-;这就解释了这种差异&它在哪里适用。
<persistence-unit name="JTA_DS" transaction-type="JTA">
<jta-data-source>java:JTA_DS</jta-data-source>
</persistence-unit>
<persistence-unit name="NON_JTA_DS" transaction-type="RESOURCE_LOCAL">
<non-jta-data-source>java:NON_JTA_DS</non-jta-data-source>
</persistence-unit>