1

テーブル 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としてルート

何か案が ?

4

2 に答える 2