2016-07-07 81 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" /> 

這對我有用。