2013-12-16 52 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