#java #spring-boot #hibernate #many-to-many
Вопрос:
отказ от ответственности, я плохо говорю по-английски, извините.
У меня есть три сущности, одна из которых действует как множество для двух других:
@Entity(name = "user") public class User{ ... @OneToMany(mappedBy = "user") Listlt;Sanctiongt; sanctions; ... } @Entity(name = "mission") public class Mission{ ... @OneToMany(mappedBy = "mission") Listlt;Sanctiongt; sanctions; ... } @Entity(name = "sanction") public class User{ ... @ManyToOne @JoinColumn(name = "user_id", referencedColumnName = "id") private User user; @ManyToOne @JoinColumn(name = "mission_id", referencedColumnName = "id") private Mission mission; ... }
Мне нужна спецификация, которая позволит получить список миссий, на которые пользователь N не имеет санкции.
public static Specificationlt;Missiongt; findNotAssignedToUser(final String userName) { return ((root, query, cb) -gt; { // ? }); }
Комментарии:
1. Вы не можете создать такую спецификацию, миссия и пользователь не связаны, единственный способ связаться с пользователем из миссии-это получить санкцию, и если вы пройдете через санкцию, у всех ваших пользователей будет по крайней мере одна санкция. Обновите свои сущности, чтобы включить связь между пользователем и миссией