The only way you can do this with plain Hibernate is via HQL. Something like the following would do
SELECTa.value, b.value, c.valueFROMAaLEFTJOINCcONc.value = 'a_1'ANDEXISTS(SELECT 1 FROM B b WHEREc.b = b AND b.a = a)
LEFTJOIN B b ONc.b = b AND b.a = a
If you are willing to try out something you could also give the JPA Criteria implementation of Blaze-Persistence a shot which provides support for entity joins. It's a different implementation of the JPA Criteria API that in the end translates to JPQL/HQL that runs on an existing JPA provider. It also adds support for CTEs which would probably also solve your problem.