JPA OneToMany The Many с той же моделью и той же колонкой
Article.java
@OneToMany
@JoinColumn(name = "refId", referencedColumnName = "id")
private List<Attachment> attachmentList;
Book.java
@OneToMany
@JoinColumn(name = "refId", referencedColumnName = "id")
private List<Attachment> attachmentList;
Attachment.java
private String refId
Статья и книга имеют много вложений и объединяются с одной колонкой "refId". Вложение Entity, как кодировать?
1 ответ
Решение
Для меня это не имеет особого смысла: как я могу узнать, просматривая запись вложения, является ли это книгой или статьей, на которую ссылается столбец refId? У вас должны быть отдельные столбцы для хранения отношений Attachment to Book и Article.
Если Book и Article совместно используют ключ, то есть Book и Article должны совместно использовать родительский класс, тогда он должен выглядеть примерно так:
class Document {
@Id
Long id;
@OneToMany
List<Attachment> attachments;
}
class Article extends Document {
//....
}
class Book extends Document {
//....
}