在多对多关系的一侧分配条目时,WrongClassException

时间:2011-08-12 12:11:02

标签: java hibernate persistence spring-roo

我正在使用Spring Roo(和Hibernate)作为Web应用程序。

我有两个与MANY-TO-MANY关系很紧密的实体:

public class Student{
   @ManyToMany(cascade = CascadeType.ALL,mappedBy="students")
   private Set<Course> courses = new HashSet<Course>();
}

public class Course{
   @ManyToMany(cascade = CascadeType.ALL)
   private Set<Student> students = new HashSet<Student>();
}

在脚手架GUI中我可以为学生分配多个课程,但是当我尝试将学生分配到课程时,我收到了这个错误:

  

org.hibernate.WrongClassException:id为null的对象不属于指定的子类:com.company.Student(给定对象的类与持久副本的类不匹配);嵌套异常是javax.persistence.PersistenceException:org.hibernate.WrongClassException:id为null的对象不属于指定的子类:com.company.Student(给定对象的类与持久副本的类不匹配)

可能是问题的原因是什么?

2 个答案:

答案 0 :(得分:0)

只需查看语法,尝试在mappedBy类中的@ManyToMany注释中设置Course属性的值。

答案 1 :(得分:0)

我通过尝试保存一个@Entity对象来获取WrongClassException,该对象使用与另一个类相同的@DiscriminatorValue。