jpa2 namedquery count проблема с пустыми коллекциями - PullRequest
1 голос
/ 18 марта 2012

я получил 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")

Это нормально, за исключением того, что в списке результатов запроса нет записей для ModTopScope, у которых нет соответствующих записей в таблице ModInstallResults. Как я могу это исправить?

Собственный sql, который выбирает записи, для которых нет соответствующих записей в таблице mod_install_resutls:

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)

1 Ответ

0 голосов
/ 19 марта 2012

ОК, наконец, я написал правильный запрос, я написал комментарий,

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

...