あなたはHQLでそのようなことを試みることができます:
String sqlText =
"select entityA
from EntityA entityA, EntityB entityB
where entityA.fieldA=entityB.fieldA
and entityA.fieldC=(select sum(entityB.fieldB)
from EntityB entityB
where entityB.fieldA=entityA.fieldA)"
Query query = session.createQuery(sqlText);
SQLと同様に機能するはずです。あなたの声明について - 私が知っているように、オブジェクト指向であるため、HQL で内部ビューを使用することはできません。
これは、HQL での結合に関する良い記事です。
編集:
上記のuser1495181からのメモによると、クエリは次のように書き換えることができます(ただし、よくわかりません):
String sqlText =
"select entityA
from EntityA entityA
join entityA.entitiesB entityB
Where entityA.fieldC=(select sum(entityB.fieldB)
from EntityB entityB
where entityB.fieldA=entityA.fieldA)"
しかし、私にとってはより理解しやすいため、最初のバリアントを好みます(特にネイティブSQLを使用していた人々にとって)。