Очевидно, что приведение - это путь, однако мы должны принять во внимание, что .fetch () /. Join () являются общими методами, поэтому приведение немного отличается
Опция 1
Fetch<Ereturn, ProductItem> productItemFetch = er.fetch("productItems", JoinType.LEFT);
Join<Ereturn, ProductItem> productItemJoin = (Join<Ereturn, ProductItem>) productItemFetch;
Вариант 2
Join<Ereturn, ProductItem> productItemJoin = (Join<Ereturn, ProductItem>) er.<Ereturn, ProductItem>fetch("productItems", JoinType.LEFT)
И теперь запрос верен тому, что я искал:
select
...
from
ereturn ereturn0_
left outer join
product_item productite5_
on ereturn0_.id=productite5_.ereturn
where
and productite5_.status=?