2011-10-06 205 views
0

我正在編寫看起來像Google Latitude(找到用戶)的代碼。 我在Tomcat 6.0.33,使用JPA/Hibernate和easybeans 1.1JPA /休眠OneToMany&ManyToOne註釋

他們獨立工作,但是當我嘗試將它們連接失敗:

Caused by: javax.persistence.PersistenceException: [PersistenceUnit: entity] Unable to build EntityManagerFactory 
Caused by: org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer] 

下面是代碼:

public class Personne{ 
@ManyToOne(fetch=FetchType.EAGER, cascade={ CascadeType.PERSIST,CascadeType.MERGE }) 
public Personne getOwner() { 
    return owner; 
    } 
} 

public class MaPosition{ 
@OneToMany 
public List<Personne> getFriends() { 
    return friends; 
    } 
} 

感謝您的幫助;)

+0

是右上方的代碼?您的Personne實體是否與自己有ManyToOne關係?不應該你的getOwner()方法返回一個MaPosition實體嗎? –

回答

0

不,如果你添加的mappedBy到您的一對多工作?

public class MaPosition{ 
    @OneToMany(mappedBy="owner") 
    public List<Personne> getFriends() { 
     return friends; 
    } 
} 
+0

感謝您的回答。 不,它不起作用。再次相同的錯誤:( – isildur37

+0

好吧,然後根據錯誤消息,這個答案呢?http://stackoverflow.com/questions/2669724/hibernate-unable-to-instantiate-default-tuplizer-cannot-find-getter – digitaljoel

+0

我已經在我的課程路徑中添加了javaassist:s – isildur37

0

JPA/Hibernate的一對多&多對一註解類人和人的地址。 所以一個人可以有多個地址.....,我用這它的工作...

一對多....

public class Person{ 
@OneToMany(mappedBy="person", targetEntity=Address.class, cascade=CascadeType.MERGE) 
private Set<Address> addressList = HashSet<Address>(); 
//Getters and Setters..... 
} 

多對一....

public class Address{ 
@ManyToOne 
@JoinColumn(name="PERSON_ID") 
private Person person; 
//Getters and Setters..... 
}