1

一対多の関係を持つ 2 つのエンティティ (ModTopScope と ModInstallResults) を取得しました

および NamedQuery:

@NamedQuery(name="ModTopScope.getScopesForActiveSystems", 
        query="SELECT s, COUNT(s.modInstallResults) FROM ModTopScope s LEFT JOIN FETCH s.modInstallResults " +
                "WHERE s.modScopeType.modSystem.activated = true " +
                "GROUP BY s " +
                "ORDER BY COUNT(s.modInstallResults) DESC")

ModInstallResults テーブルに対応するレコードがない ModTopScope のクエリ結果リストにレコードがないことを除けば、問題ありません。どうすれば修正できますか?

mod_install_resutls テーブルに対応するレコードがないレコードを選択するネイティブ sql:

select  s.id, count(i.id) from mod_top_scopes s left join mod_install_results i on s.id=i.scope_id group by s.id order by count(i.id)
4

1 に答える 1

0

OK、最後に正しいクエリを書きました。コメントを書きました。

SELECT DISTINCT s, COUNT(i) FROM ModTopScope s LEFT JOIN s.modInstallResults i " + "WHERE s.modScopeType.modSystem.activated = true " + "GROUP BY s " + "ORDER BY COUNT(i) DESC

于 2012-03-19T16:18:14.670 に答える