1

No-SQL-Databaseing として Neo4j を使用して JSF WebApplication を構築しようとしています。Hibernate 経由で Neo4j にアクセスしたい。

私の依存関係は

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.hibernate.ogm</groupId>
            <artifactId>hibernate-ogm-bom</artifactId>
            <version>5.0.1.Final</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.hibernate.ogm</groupId>
        <artifactId>hibernate-ogm-neo4j</artifactId>
    </dependency>

私のエンティティは次のようになります

@Entity
public class Person implements Serializable {

 private static final long serialVersionUID = 1L;

 @Id
 @GeneratedValue(generator = "uuid")
 @GenericGenerator(name = "uuid", strategy = "uuid2")
 private String id;

 private String name;

 private Double age;

 @OneToMany(fetch = FetchType.EAGER, mappedBy = "owner", cascade = CascadeType.PERSIST)
 private Set<Car> cars = new HashSet<>();
 ...

次のクラスに保存します

@Stateless
public class StorageManager {

 @PersistenceContext(unitName = "neo4j")
 private EntityManager em;

 public void savePerson(Person p) {
    em.persist(p);
 }

 public void saveCar(Car c){
    em.persist(c);
 }

 public void save(String personName, Double personAge, String carName) {
    Person person = new Person(personName, personAge);
    Car car = new Car(carName);
    car.setOwner(person);
    person.getCars().add(car);
    em.persist(person);
 }

私の持続性ユニット

<persistence-unit name="mongo-ogm" transaction-type="JTA">
    <provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>
    <class>entities.Person</class>
    <class>entities.Car</class>
    <exclude-unlisted-classes>true</exclude-unlisted-classes>

    <properties>
        <property name="hibernate.ogm.datastore.provider" value="neo4j_embedded" />
        <property name="hibernate.ogm.neo4j.database_path" value="C:\Users\phe\Documents\Neo4j\sample" />
    </properties>
</persistence-unit>

Wildlfy 9 に WebApp をデプロイし、データを保存しようとすると、例外が発生します

org.hibernate.resource.transaction.backend.jta.internal.JtaPlatformInaccessibleException: Unable to access TransactionManager or UserTransaction to make physical transaction delegate

インターネットでの調査は結果なしで終了しました。いくつかのチュートリアルしかありません。transaction-type="JTA" の有無にかかわらず試してみました。

何かアイデアはありますか?

4

1 に答える 1

0

解決策を見つけました。Wildlfy にデプロイしているので、永続ユニットに以下を追加できます。

<property name="hibernate.transaction.jta.platform" value="JBossAS" />

これは私にとってはうまくいきます。

于 2016-07-07T11:48:29.320 に答える