java - How to join fetch two associations with JPA/Hibernate -


i new hibernate , need guys.... have following class: useractionperuserresult

@entity @table(name = "user_action_per_user_result") public class useractionperuserresult {      @id     @generatedvalue(strategy = generationtype.identity)     private long id;      @column(name = "user_email", nullable = false)     private string useremail;      @manytoone     @joincolumn(name = "user_action_id", nullable = false)     private useraction useraction;      @manytomany(fetch = fetchtype.lazy)     @jointable(name="user_action_per_user_result_email_message",                   joincolumns={@joincolumn(name="user_action_per_user_result_id", referencedcolumnname="id")},                   inversejoincolumns={@joincolumn(name="email_message_id", referencedcolumnname="id")})     @jsonignore     private list<emailmessage> emailmessages;  ....getters/setter.... } 

in mysql, useractionperuserresult 1 table , email messages, there table called useractionperuserresultemailmessage has email messages associate id of table useractionperuserresult.

i have data stored in mysql table, not able query it. need write query fetch list of emailmessages. trying following, throwing exception.

typedquery<useractionperuserresult> messagesquery =     entitymanager.createquery(                     "select e useractionperuserresult e join useractionperuserresult.emailmessages e1 e.id = 1 , e.useraction = 1", useractionperuserresult.class); list<useractionperuserresult> resultlist = messagesquery.getresultlist(); 

try writing query this:

typedquery<useractionperuserresult> messagesquery = entitymanager.createquery(    "select e useractionperuserresult e join fetch e.emailmessages em e.id = 1 , e.useraction.id = 1", useractionperuserresult.class); list<useractionperuserresult> resultlist = messagesquery.getresultlist(); 
  1. the join using root entity alias
  2. the useraction.id used against useraction, when matching against numerical value