У меня есть 2 сущности в JPA: запись и комментарий. Запись содержит две коллекции объектов Comment.
@Entity
public class Entry {
...
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@IndexColumn(base = 1, name = "dnr")
private List<Comment> descriptionComments = new ArrayList<Comment>();
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@IndexColumn(base = 1, name = "pmnr")
private List<Comment> postMortemComments = new ArrayList<Comment>();
...
}
Для хранения таких объектов JPA + Hibernate создает таблицу «Entry», таблицу «Comment» и SINGLE «Entry_Comment»:
create table Entry_Comment (Entry_id integer not null, postMortemComments_id integer not null, pmnr integer not null, descriptionComments_id integer not null, dnr integer not null, primary key (Entry_id, dnr), unique (descriptionComments_id), unique (postMortemComments_id))
Ошибка сохранения объектов, поскольку descriptionComments_id
и postMortemComments_id
не могут быть "не нулевыми" одновременно.
Как сохранить объект, содержащий две коллекции одного типа, с использованием JPA + Hibernate?