title: HQL make joins with 2 tables that depends on one root table with one SQL
body: <p>I have 3 tables
  tableA has references to tableB.id and tableC.id</p>
  
  <p>So in my entity:</p>
  
  <pre><code>class TableA{
  
    @OneToMany
    public TableB getTableB(){}
  
    @OneToMany
    public TableC getTableC(){}
  
  }
  </code></pre>
  
  <p>So I need to select all records from tableA with prefetched tableB and C. I write HQL:</p>
  
  <pre><code>select a from TableA a inner join a.tableB inner join a.tableC
  </code></pre>
  
  <p>But then I see a huge load of subselects in logs. So it selects a record from tableA and then runs a sparate select for fetching table Ab and C. Why? FectchMode.JOIN didn't help. I need a one monolithic SQL and I can run it successfully in DB tool. How to do that in HQL?</p>