У меня есть абстрактный MappedSuperClass, Участник, который расширен тремя видами «Участник». Каждый из них затем использует свой собственный тип «Project», также абстрактный MappedSuperClass. Однако я хочу, чтобы базовый класс знал о проектах, чтобы я мог написать общий код для взаимодействия с участниками. Как мне указать это с помощью аннотаций Hibernate? и как мне переопределить его в классах ExtendedParticipant и ExtendedProject?
Каждый тип участника и каждый тип проекта имеют свои собственные таблицы базы данных с существующими данными и идентификаторами (не уникальными для разных таблиц), которые я не могу изменить.
Следующий код выдает ошибку IDE «Атрибут« многие к одному »не должен быть« Преобразованным суперклассом »».
@MappedSuperclass
public abstract class Participant implements Persistable {
...
@ManyToOne
@JoinColumn(name = "project_id")
public Project getProject() {
return project;
}
public void setProject(Project project) {
this.project = project;
}
...
}
и класс Project во многом совпадает с той же проблемой:
@MappedSuperclass
public abstract class Project implements Persistable {
...
@OneToMany
public List<Participant> getParticipants() {
return participants;
}
public void setProject(List<Participant> participants) {
this.participants = participants;
}
...
}