我正在使用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(给定对象的类与持久副本的类不匹配)
可能是问题的原因是什么?
答案 0 :(得分:0)
只需查看语法,尝试在mappedBy
类中的@ManyToMany
注释中设置Course
属性的值。
答案 1 :(得分:0)
我通过尝试保存一个@Entity对象来获取WrongClassException,该对象使用与另一个类相同的@DiscriminatorValue。