2016-04-11 23 views
0

Tümleştirme çalışmıyor mongodb + hazırda bekletme, herhangi bir özel durum atmıyor. em.insert satırını çalıştırdıktan sonra (p) herhangi bir kayıt eklemez. Persistence.xml dosyasında, yapılandırma veritabanını algılamaz. Veritabanının bağlantı noktasını veya veritabanının adını varolmayan biriyle değiştirirseniz, bir istisna atlamaz. Varlık-birim değişikliği UnidadOGM ise, başka bir zincir tarafından kalıcılık birimi bulunmayan bir istisna atlarsa, persistence.xml dosyasını okuyun.tümleştirme jpa + mongodb "çalışmıyor"

<persistence 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" 
version="2.0"> 
<persistence-unit name="UnidadOGM" transaction-type="JTA"> 

<provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider> 
<class>com.arquitecturajava.Persona</class> 
<properties> 

<property name="hibernate.ogm.datastore.provider" value="mongodb" /> 
<property name="hibernate.ogm.datastore.grid_dialect" 
value="org.hibernate.ogm.datastore.mongodb.MongoDBDialect" /> 
<property name="hibernate.ogm.datastore.database" value="arquitecturajava" /> 
<property name="hibernate.ogm.mongodb.host" value="127.0.0.1" /> 
<property name="hibernate.ogm.mongodb.port" value="27017" /> 
</properties> 
</persistence-unit> 

</persistence> 

bağımlılıkları:

<dependency> 
<groupId>org.hibernate.ogm</groupId> 
<artifactId>hibernate-ogm-mongodb</artifactId> 
<version>4.1.0.Beta8</version> 
</dependency> 
<dependency> 
<groupId>org.hibernate.javax.persistence</groupId> 
<artifactId>hibernate-jpa-2.0-api</artifactId> 
<version>1.0.1.Final</version> 
</dependency> 
<dependency> 
<groupId>org.jboss.spec.javax.transaction</groupId> 
<artifactId>jboss-transaction-api_1.1_spec</artifactId> 
<version>1.0.0.Final</version> 
<scope>provided</scope> 
</dependency> 
<dependency> 
<groupId>org.jboss.jbossts</groupId> 
<artifactId>jbossjta</artifactId> 
<version>4.16.4.Final</version> 
</dependency> 

cevap

1

Verileri

EntityManagerFactory emf = Persistence 
    .createEntityManagerFactory("UnidadOGM"); 

    EntityManager em = emf.createEntityManager(); 
    Persona p = new Pwersona(); 
    p.setId("1"); 
    p.setNombre("Alberto"); 
    p.setNombre("Perez"); 

    em.getTransaction().begin(); 

    em.persist(p); 

    em.getTransaction().commit(); 
    em.close(); 

Eklemek ve sorgu verileri tek işlemde istiyorsanız

eklemek için bir işlem ihtiyaç olasılıkla, sonra flush() çağırmanız gerekir veri eklemek

+0

sayesinde, bu sonucudur: iplik "ana" java.lang.IllegalStateException içinde İstisna: Bir JTA EntityManager getTransaction() kullanamaz org.hibernate.jpa.spi.AbstractEntityManagerImpl.getTransaction de \t (AbstractEntityManagerImpl.java:1368) org.hibernate.ogm.jpa.impl.OgmEntityManager.getTransaction (OgmEntityManager.java:591) com.di.maven.App.main (App.java:25 de \t de \t) – user1358518

+0

@ user1358518, ekleyiniz bir sorunuza tam yığın iz. –

+0

@ user1358518 Bağımsız bir uygulama ile çalışıyorsanız, işlem türünü kalıcı olarak RESOURCE_LOCAL olarak ayarlamanız gerekir – Davide