2016-09-23 4 views
0

У меня есть 2 таблицы, представленные 2 beans: ProcessType и Typology.Hibernate HQL: от многих до многих

В БД есть третья таблица, представляют многие ко многим realtion между этими двумя столами, таблица doesen't есть фасоль и называется process_type_typology

В таблице имеет 2 колонки: типология и process_type

на ProcessType я есть следующий атрибут, который представляет собой отношение:

  @ManyToMany(fetch = FetchType.LAZY) 
      @JoinTable(name = "process_types_typology" , 
      joinColumns = {@JoinColumn(name = "process_type")} , 
      inverseJoinColumns = {@JoinColumn(name = "typology")}) 
      private Set<Typology> typologies = new HashSet<Typology>(0);    

А потом на Типология:

  @ManyToMany(fetch = FetchType.LAZY) 
      @JoinTable(name = "process_types_typology" , 
      joinColumns = {@JoinColumn(name = "typology")} , 
      inverseJoinColumns = {@JoinColumn(name = "process_type")}) 
      private Set<ProcessType> processTypes = new HashSet<ProcessType>(0); 

Как я могу сделать соединение между этими 2 таблицами? Третья таблица не отображается, поэтому у меня нет идеи.

На SQL запрос заключается в следующем:

from processType inner join process_types_typology ptt on pt.id_process_type=ptt_.process_type 

ответ

0

Просто присоединиться ProcessType и Typology, Hibernate будет заботиться упомянуть таблицу отношений в сгенерированном SQL:

from ProcessType pt join pt.typologies t 

Кроме того, так как ассоциации является двунаправленным, обязательно объявите одну сторону inverse.