2017-08-10 9 views
0

J'ai un test très minimal qui configure correctement OpenJPA, JTA, connectivité de base de données, amélioration et n'émet aucune exception, mais il ne persiste pas avec le code simple ci-dessous. Que dois-je montrer de plus ou ce qui est nécessaire au-delà des simples instructions pour écrire réellement des enregistrements sur la base de données?openJPA configuré ne pas persister

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> 

Répondre

0

Je suppose que votre transaction n'est pas engagée.

+0

Mais de quoi ai-je besoin pour forcer la validation autrement? –

+0

Vous devez ajouter un contexte transactionnel autour de votre méthode? – Rick