JPQL Quesry в отношении ManyToMany с использованием JoinTable - PullRequest
0 голосов
/ 07 мая 2018

У меня есть три сущности ниже. Я хочу получить список правил по идентификатору DEP, используя JPA

ПРАВИЛО ---------- OneToMany ----------> EMP ------------ ManyToMany ---------- -> DEP.

 @Entity
    @Table(name = "EMP")
    public class Emp implements Serializable {
        private static final long serialVersionUID = 1L;

        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private int id;


        @OneToMany(mappedBy = "emp")
        private List<Rule> rules;

        @ManyToMany
        @JoinTable(name = "rule_ref_sub_category_ref", joinColumns = {
                @JoinColumn(name = "EMP_ID") }, inverseJoinColumns = { @JoinColumn(name = "DEP_REF_ID") })
        private List<Dep> Deps;
    }


     */
    @Entity
    @Table(name="DEP")
    public class Dep implements Serializable {
        private static final long serialVersionUID = 1L;

        @Id
        @GeneratedValue(strategy=GenerationType.IDENTITY)
        private Long id;

        @Column(name="LABEL")
        private String label;

        private int mandatory;

        @ManyToMany(mappedBy="Deps")
        private List<Emp> emps;

    }

    @Entity
    @Table(name="RULES")
    public class Rule implements Serializable {
        private static final long serialVersionUID = 1L;

        @Id
        @GeneratedValue(strategy=GenerationType.IDENTITY)
        private Long id;


        @ManyToOne
        @JoinColumn(name="EMP_REF_ID")
        private Emp emp;
    }

Может кто-нибудь, направьте мне пример JPQL-запроса, чтобы решить эту проблему.

1 Ответ

0 голосов
/ 07 мая 2018

Это довольно простой запрос

select r from rule r
join r.emp emp
join emp.Deps dep
where dep.id = :depId

прочитайте немного документов , чтобы понять возможную форму синтаксиса соединения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...