Hibernate映射 - “无法确定类型”

时间:2010-03-16 20:10:54

标签: java hibernate hibernate-annotations

我目前已成功保留以下对象:

  • 名字等
  • 考试标题,日期等

我现在要创建第三个表考试结果。对于这个表,我认为它应该是人员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:无法确定类型:Person,at table:ExamResult,for columns:[org.hibernate.mapping.Column(person)]

  

我想我可能会以错误的方式解决这个问题,但我无法弄清楚如何继续这种关系 tutorial

有什么想法吗?

1 个答案:

答案 0 :(得分:11)

您不能在同一个实体中拥有多个@Id注释。请改用复合ID。 Example.