2011-10-06 163 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..... 
}