query specified join fetching, but the owner of the fetched association was not present in the select list
Use regular join
instead of join fetch
(by the way, it's inner
by default):
String hql = " select ec.id as entityChangeId, r.id as revisionId from EntityChange as ec " +
" join ec.revision as r " + ...
As error message tells you, join fetch
doesn't make sense here, because it's a performance hint that forces eager loading of collection.
As you need the join fetch
, removing the fetch
won't meet your needs.
What you should do instead is specify a count query together with it.
Assuming you are paginating the result, below is a JPA query that takes id as a param
and will cause the problem you specified and the second query solves this by adding count query to it.
Note: fk_field
is the attribute in tableA
that has the one-to-many rln. The count query does not use join fetch
.
@Query(value = "from TableA a LEFT JOIN FETCH a.fk_field where a.id = :id")
@Query(value = "from TableA a LEFT JOIN FETCH a.fk_field where a.id = :id",
countQuery = " select count(a) from TableA a left join a.fk_field where a.id = :id")