Итак, я задал этот вопрос вчера, но посты цели изменились, и вопрос другой:
Hibernate / JPA Коллекция элементов со многими ко многим?
Я хочу знать, возможно ли создавать объекты, которые будут моделировать мои необходимые отношения, чтобы Hibernate создавал мою схему при запуске приложения.
Отношения, которые я хочу, выглядят так:
1 http://a8.sphotos.ak.fbcdn.net/hphotos-ak-ash4/417593_10150594114269218_505554217_8657377_1475865815_n.jpg
Дело в том, что таблица Join может содержать строки, которые не связаны ни с какими элементами. Структура представляет классификацию элементов на основе пары «тип» и «значение» и вводится в систему за пределами этого конкретного приложения.
То, что я хотел бы сделать, - это настроить мою Элементную Hibernate Entity так, чтобы она содержала список категорий посредством сопоставления, чтобы я мог фактически видеть, к каким категориям принадлежит мой элемент AND, так что Hibernate создает таблицу для меня. .
Вот что у меня получилось: сопоставить это в моем классе Element Entity следующим образом:
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "ELEMENT_ELEMENTCATOGORY", joinColumns = {
@JoinColumn(name = "type", referencedColumnName = "type"),
@JoinColumn(name = "value", referencedColumnName = "value") })
@Column(name = "category")
public List<ElementCategory> getCategories() {
return categories;
}
Это делает большую часть того, что я хочу, он создает мои таблицы, как указано выше, именно так, как я хочу, чтобы они исключали одну вещь, в таблицу элементов добавлена уникальная зависимость в паре (тип, значение). Я не хочу этого, потому что несколько элементов могут иметь одинаковую пару типа и значения, мне нужно иметь возможность остановить создание уникального ограничения с самого начала, но не могу понять, как с текущим отображением я могу это сделать? Я упускаю суть отношения «многие ко многим»?