У меня проблема с настройками отношений один для многих. Я хочу создать связь между FindingAid и FindingAidVersion. Я попробовал пример в документации Hibernate и многих примерах в Интернете, но я не знаю, что не так.Hibernate от одного до многих отношений аннотация
FindingAid.java
Public class FindingAid implements Serializable {
private String id;
....
@OneToMany
@JoinColumn(name="id")
private Set<FindingAidVersion> listVersion = new HashSet<FindingAidVersion();
...... generate getter and setter .....
}
FindingAidVersion.java
Public class FindingAidVersion implements Serializable {
private String id;
private Date closeDate;
private FindingAid findingAid;
.......
@ManyToOne
@JoinColumn(name = "id", nullable = false)
public FindingAid getFindingAid() {
return findingAid;
}
...... generate getter and setter .....
}
код приложения:
FindingAid data = new FindingAid();
data.setCreateDate(new Date());
data.setName("daniel");
FindingAidVersion verse = new FindingAidVersion();
verse.setCloseDate(new Date());
verse.setIsClose(false);
data.getListVersion().add(verse);
this.getSession().save(data);
this.getTx().commit();
Ошибка: Повторные столбец отображения для объекта: cz.tacr.elza.api.model.FindingAidVersion столбца: идентификатор (должен быть сопоставлен со вставкой = «ложь» обновление = «ложь»)
Я знаю, эта проблема находится в аннотации @JoinColumn, но я потерян.
Спасибо за ваши предложения.
Вы можете добавить insert = "false" update = "false" в отображение FindingAidVersion и попробуйте, потому что об этом говорит ошибка. –
'@ OneToMany' не должен сопровождаться' @ JoinColumn'. Вместо этого вы должны использовать: '@OneToMany (mappedBy =" findAid ")' –