Я новичок в Play и Hibernate и работаю над проектом. Я люблю это до сих пор!
Недавно я столкнулся с новой проблемой. У меня есть таблица людей. Затем в этом классе у меня есть отношение ManyToMany, которое ссылается на себя. Таким образом, Hibernate прекрасно создает эту таблицу, и у меня есть peopleid1 и peopleid2, и люди могут иметь отношения со всеми другими людьми и наоборот.
Теперь мне нужно выполнить несколько сложных запросов к этой таблице, и у меня возникли некоторые проблемы, так как я хочу сделать это в своем собственном классе, но не уверен, что это лучший способ сделать это или использовать hibernate. Является ли JPQL ответом? Любая помощь или мысли приветствуются!
Давайте использовать двоюродных братьев в качестве примера. У меня есть человек класса / модели, и у этих людей есть двоюродные братья и сестры. Прямо сейчас у меня есть это в моем коде:
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name = "Cousins",
joinColumns = { @JoinColumn(name = "personid") },
inverseJoinColumns = { @JoinColumn(name = "cousinid") })
public Set<User> cousins;
Это прекрасно работает и прекрасно создает объединяющую таблицу, и я могу вводить данные и тому подобное, как и ожидалось. Тем не менее, я застрял, пытаясь написать функцию. Я могу найти всех людей, которые вошли в систему Person, имеют двоюродных братьев, но не могут найти всех, где зарегистрированный пользователь является двоюродным братом. Я думаю, что это правильный способ сделать это, но я очень склонен просто сделать кузенов своим собственным классом / моделью, и когда я делаю так, вещи работают, но я не уверен, как тогда Hibernate будет управлять отношениями.