2016-04-11 12 views
0

統合はmongodb +休止状態では動作しません。例外はスローされません。 em.insert行(p)を実行した後にレコードを挿入しません。統合jpa + mongodb "動作しません"

persistence.xmlでは、構成データベースが検出されません。データベースのポートまたは存在しないデータベースの名前を変更しても、例外は発生しません。 persistence-unitがUnidadOGMに変更された場合、persistence.xmlファイルを読み込みます。他のチェーンによって、persistence-unitが存在しない例外がジャンプします。

<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> 

依存関係:

<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> 

答えて

1

あなたはおそらく、1つのトランザクションでデータを挿入し、クエリしたい場合は、後にflush()を呼び出すために必要なデータ

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(); 

を挿入するトランザクションを必要としますデータを挿入する。

+0

おかげで、これは結果である:スレッドの例外 "メイン" java.lang.IllegalStateException:JTAのEntityManagerはorg.hibernate.jpa.spi.AbstractEntityManagerImpl.getTransactionでgetTransaction() \tを使用することはできません(AbstractEntityManagerImpl.java:1368 com.di.maven.App.main(App.java:25) – user1358518

+0

でorg.hibernate.ogm.jpa.impl.OgmEntityManager.getTransactionで) \t(OgmEntityManager.java:591) \t user1358518 @、追加してください。あなたの質問に完全なスタックトレース。 –

+0

@ user1358518スタンドアロンアプリケーションを使用している場合は、トランザクションタイプをRESOURCE_LOCALとして永続性に設定する必要があります – Davide

関連する問題