У меня в настоящее время есть следующие объекты, сохраняющиеся успешно:
Я хотел бы теперь создать третьи результаты таблицы Exam. Для этой таблицы я полагаю, что это должен быть идентификатор человека, идентификатор экзамена и результат, и это - многие многим отношения.
@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: не Мог определить тип для: Человек, за таблицей: ExamResult, для столбцов: [org.hibernate.mapping. Столбец (человек)]
Я думаю, что могу идти об этом неправильным путем, но я не могу разработать, как возобновить эти отношения из учебного руководства.
Какие-либо идеи?
Вы не можете иметь несколько @Id
аннотаций в одной сущности. Вместо этого используйте составной идентификатор.
Пример.