Java Hibernate映射-“;无法确定类型";

Java Hibernate映射-“;无法确定类型";,java,hibernate,hibernate-annotations,Java,Hibernate,Hibernate Annotations,我当前已成功持久化以下对象: 人名字等 考试题目、日期等 我现在要创建第三个表考试结果。对于这个表,我认为应该是个人ID、考试ID和结果,这是一个多对多关系 @Entity public class ExamResult { private Exam exam; private Person person; private double value; @Id @ManyToOne( cascade = {CascadeType.PERSIST, Ca

我当前已成功持久化以下对象:

  • 名字等
  • 考试题目、日期等
我现在要创建第三个表考试结果。对于这个表,我认为应该是个人ID、考试ID和结果,这是一个多对多关系

@Entity
public class ExamResult {
    private Exam exam;
    private Person person;
    private double value;

    @Id
    @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
    @JoinColumn(name="EXAM_ID")
    public Exam getExam() {
        return exam;
    }
    public void setExam(Exam exam) {
        this.exam = exam;
    }

    @Id
    @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
    @JoinColumn(name="PERSON_ID")
    public Person getPerson() {
        return person;
    }
    public void setPerson(Person person) {
        this.person = person;
    }

    public double getValue() {
        return value;
    }
    public void setValue(double value) {
        this.value = value;
    }
}
错误:

org.hibernate.MappingException:无法确定列:[org.hibernate.mapping.Column(Person)]的表:ExamResult中的:Person的类型

我想我可能走错了方向,但我不知道如何从根本上处理这段关系


有什么想法吗?

在同一个实体中不能有多个
@Id
注释。改为使用复合ID。

也不知道会出什么问题。。。你能展示一下
Person
类吗?关于这个@envantate有一个公开的问题,
Person
类是一个POJO,没有以任何方式提到
ExamResult
。谢谢,这个例子看起来确实像我想要实现的。我正在经历它。