2013-12-16 28 views
0

这是非jta-datasource如何工作?是否需要在持久性.xml本身内部提供持久性单元?

  • 是什么非JTA,数据源和 的JTA数据源之间的区别?

在下面的代码我没有指定持久性单元,而不是我用 非jta-数据源如何工作?有没有可能做到这样吗?

<?xml version="1.0" encoding="UTF-8"?> 
    <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
    http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> 
     <persistence-unit name="bookPU" transaction-type="RESOURCE_LOCAL"> 
      <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
      <non-jta-data-source>java:/comp/env/jdbc/bookDS</non-jta-data-source> 
      <class>com.admin.Author</class> 
      <class>com.admin.Book</class> 

      <exclude-unlisted-classes>false</exclude-unlisted-classes> 
    </persistence-unit> 
    </persistence> 

回答

0

您的persistance.xml确实包含名为bookPU的持久单元。您发布的第一个xml包含非jat数据源,第二个xml包含jta数据源。通常,非JTA数据源将用于其他资源(如JMS)不必属于单个事务的单元测试用例。然而,在实际应用的情况下,我们使用JTA数据源,其中涉及数据库,JMS等多个XA资源。
请参阅网址:Difference between a "jta-datasource" and a " resource-local " datasource?以了解JTA和非JTA数据源之间的区别。

+0

但通过使用非jta代码减少是那么好? – Lijo

+0

@ 404,我没有得到你的意思'代码被缩减'?您是否希望使用JTA或非JTA取决于您的需要。如果您希望进行两阶段提交,那么您必须使用JTA数据源。如果不是非JTA数据源将适合。 – thiyaga