Отображение гибернации - не удалось определить тип

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

  • Имя человека и т. д.
  • Экзамены, название, дата и т. д.

Теперь я хочу создать третью таблицу Результаты экзамена. Я считаю, что для этой таблицы это должен быть идентификатор человека, идентификатор экзамена и результат, и это отношение «многие ко многим».

@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, в таблице: ExamResult, для столбцов: [org.hibernate.mapping.Column(person)]

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

Любые идеи?


person Pool    schedule 16.03.2010    source источник
comment
Тоже не знаю, что может быть не так... Не могли бы вы показать класс Person?   -  person BorisOkunskiy    schedule 16.03.2010
comment
Существует открытый вопрос об этом opensource.atlassian.com/projects/hibernate/browse /ХХХ-4226   -  person Pascal Thivent    schedule 16.03.2010
comment
@incarnate, класс Person был POJO без какого-либо упоминания ExamResult.   -  person Pool    schedule 17.03.2010


Ответы (1)


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

person William Witter da Silva    schedule 16.03.2010
comment
Спасибо, этот пример похож на то, чего я пытаюсь достичь. Я прохожу через это. - person Pool; 17.03.2010