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

时间:2013-12-16 05:29:44

标签: java xml database persistence

这是

  • 非jta-datasource和。之间的区别是什么? 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>

1 个答案:

答案 0 :(得分:0)

您的persistance.xml确实包含名为bookPU的持久性单元。您发布的第一个xml包含非jat数据源,第二个xml包含jta数据源。通常,非JTA数据源将用于单元测试用例,其中像JMS这样的其他资源不需要属于单个事务。但是在实际应用的情况下,我们使用JTA数据源,其中涉及多个XA资源,如数据库,JMS等。
有关JTA和非JTA数据源之间的区别,请参阅URL:Difference between a "jta-datasource" and a " resource-local " datasource?