2012-03-18 2 views
1

я получил 2 Entities (ModTopScope и ModInstallResults) с One-ко-многим отношениямjpa2 namedquery рассчитывать проблемы с пустыми коллекциями

и 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) 
+0

OK, наконец, я написал правильный запрос, я написал комментарий, потому что я новичок на сайте, и моя репутация не достаточна, чтобы ответить на этот вопрос +) SELECT DISTINCT s, COUNT (i) FROM ModTopScope s LEFT JOIN s .modInstallResults я "+ \t \t \t \t \t " где s.modScopeType.modSystem.activated = истина" + \t \t \t \t \t "GROUP BY S" + \t \t \t \t \t" ORDER BY COUNT (я) по убыванию – Andrey

ответ

0

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

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