|
Entities Player and Score, one-to-many relationship:
<class table="player" name="Player">
<id type="long" column="id" name="id">
<generator class="native"/>
</id>
<property name="name" type="string"/>
<list name="scores" cascade="all-delete-orphan">
<key column="score_id"/>
<index column="table_row_num"/>
<one-to-many class="Score"/>
</list>
</class>
<class table="score" name="Score">
<id type="long" column="id" name="id">
<generator class="native"/>
</id>
<property name="date" type="timestamp"/>
<property name="score" type="int"/>
</class>
HQL:
FROM Player p JOIN p.scores s WHERE 3 > ALL ELEMENTS(s.score)
I expect SQL generated by hibernate:
select player0_.id as id0_, player0_.name as name0_
from player player0_
where 3 > all (select scores1_.score
from score scores1_
where player0_.id=scores1_.score_id)
But hibernate generates (selecting identity in subquery):
select player0_.id as id0_, player0_.name as name0_
from player player0_
where 3 > all (select scores1_.id
from score scores1_
where player0_.id=scores1_.score_id)
Full SSCCE is attached.
|