テーブル ROOT と、ROOT に関連する行を含むテーブル CHILDREN があります。
ROOT の行ごとに、ROOT オブジェクトを含むオブジェクトと、CHILDREN テーブルの ROOT.id に関連する行数を取得したいと考えています。
これはSQLではかなり簡単に実現できますが、それをJPQLでどのように書くのか疑問に思っています
SQL では:
選択する
r.*、
(SELECT COUNT(c.i_id)
から
子供たち
どこ
c.rootId = r.id)
FROM ルート r;
JPAで書き直そうとしましたが、次のエラーで失敗し続けます
Caused by: org.hibernate.HibernateException: Errors in named queries: xxx
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: Unable to locate
appropriate constructor on class RootExtended...
Java クラス:
パッケージの破片;
パブリッククラスRootExtended{
プライベート ルート ルート。
プライベート ロング カウント。
public RootExtended(最終ルート ルート、最終ロング カウント) {
this.root=ルート;
this.count= カウント;
}
// フォローするゲッターとセッター
}
JPQL:
選択する
新しいplop.RootExtended(r、
(選択する
カウント (c.id)
から
c としての子
どこ
c.rootId = r.id
)
)
から
rとしてルート
何か案が ?