Я сопоставляю частную базу данных с Hibernate для использования с Spring. В нем есть пара объединяемых таблиц, которые для сущности A и сущности B имеют следующую схему:
CREATE TABLE AjoinB (
idA int not null,
idB int not null,
groupEnum enum ('groupC', 'groupD', 'groupE'),
primary key(idA, idB, groupEnum)
);
Как видите, это указывает на то, что может быть несколько отношений A-B, которые помещают их в разные группы. Я хотел бы закончить, первая строка для сущности A и вторая для сущности B, следующие наборы
Set<B> BforGroupC, BforGroupD, BforGroupE;
Set<A> AforGroupC, AforGroupD, AforGroupE;
Пока мне удалось собрать их в один набор и не обращать внимания на атрибут отношения groupEnum:
@ManyToMany(targetEntity=B.class, cascade={ CascadeType.PERSIST, CascadeType.MERGE } )
@JoinTable(name="AjoinB", joinColumns=@JoinColumn(name="idA"), inverseJoinColumns=@JoinColumn(name="idB") )
private Set<B> BforAllGroups;
и
@ManyToMany( mappedBy = "BforAllGroups", targetEntity = A.class )
private Set<A> AforAllGroups;
Как я могу сделать несколько наборов, где они принадлежат либо в groupC, groupD или groupE?
Приветствия
Nik