Будьте в спящем режиме отображаясь - “Не мог определить тип”

У меня в настоящее время есть следующие объекты, сохраняющиеся успешно:

  • Имя человека, и т.д.
  • Заголовок экзаменов, дата, и т.д.

Я хотел бы теперь создать третьи результаты таблицы 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. Столбец (человек)]

Я думаю, что могу идти об этом неправильным путем, но я не могу разработать, как возобновить эти отношения из учебного руководства.

Какие-либо идеи?

5
задан Pool 16 March 2010 в 20:10
поделиться

1 ответ

Вы не можете иметь несколько @Id аннотаций в одной сущности. Вместо этого используйте составной идентификатор. Пример.

11
ответ дан 13 December 2019 в 19:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: