2016-07-07 88 views
1

我试图使用Neo4j构建一个JSF WebApplication作为无SQL数据库。我想通过Hibernate访问Neo4j。休眠OGM Neo4j - 无法访问TransactionManager

我的依赖是

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

我的持久性单元

当我在我的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”。

你有什么想法吗?

回答

0

我找到了解决方案。在我部署到Wildlfy时,我可以将以下内容添加到持久性单元中。

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

这对我有用。