2017-08-10 7 views
0

私はopenJPA、JTA、データベース接続、拡張を適切に構成し、例外を発生させない最小限のテストを行っていますが、 dbにレコードを実際に書き込むために、何をもっと必要とするのか、あるいは単純なステートメントを超えて必要なものはありますか?openJPAは永続化されないように設定されています

public class Manipulation00 { 
    public Manipulation00(){} 
    public void startUp(ServletContext sc){ 
       EntityManagerFactory emf = 
      (EntityManagerFactory)sc.getAttribute("emf"); 
     EntityManager em = emf.createEntityManager(); 
     Exemptions00 exempt00 = new Exemptions00(); 
     exempt00.setUpc("722430001166"); 
     exempt00.setDesc("KOMBUCHA,OG2,SEASONAL"); 
     em.persist(exempt00); 
    } 

} 

persistence.xmlの

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> 
    <persistence-unit name="ediExemptions" transaction-type="JTA"> 
     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> 
     <jta-data-source>java:app/ediExemptions</jta-data-source> 
     <class>tng.db02.Exemptions00</class> 
     <properties> 
      <property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/> 
      <property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO"/> 
      <property name="openjpa.jdbc.SynchronizeMappings" 
         value="buildSchema"/> 
      <property name="openjpa.ConnectionURL" 
         value="jdbc:derby://localhost:1527/ediExemptions"/> 
      <property name="openjpa.ConnectionDriverName" 
         value="org.apache.derby.jdbc.ClientDriver"/> 
      <property name="openjpa.ConnectionUserName" 
         value="root"/> 
      <property name="openjpa.ConnectionPassword" 
         value="admin"/> 
     </properties> 
    </persistence-unit> 
</persistence> 

答えて

0

私はあなたのトランザクションがコミットされていないことを推測すると思います。

+0

しかし、コミットを強制するには何が必要ですか? –

+0

メソッドの周りにトランザクションコンテキストを追加する必要がありますか? – Rick

関連する問題