テーブル 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としてルート
何か案が ?