Добрый день
есть запрос вида
“SELECT e FROM Employee e WHERE (SELECT COUNT(p) FROM e.phoneNumbers p) >= 2”
можно ли условие запроса “(SELECT COUNT(p) FROM e.phoneNumbers p) >= 2” установить через Condition, например JpqlCondition?
если можно примером.
Для dataLoader
вот так должно работать.
<loader id="employeeDl">
<query>
<![CDATA[select e from Employee e]]>
<condition>
<and>
<c:jpql>
<c:where>
<![CDATA[(select COUNT(p) from PhoneNumber p where p.employee = {E}) >= 2]]>
</c:where>
</c:jpql>
</and>
</condition>
</query>
</loader>
Если вы хотите добавить данное условие в фильтр, то:
<filter id="filter"
dataLoader="employeeDl">
<properties include=".*"/>
<conditions>
<jpqlFilter id="phones" parameterClass="java.lang.Void" defaultValue="false" caption="phones">
<condition>
<c:jpql>
<c:where><![CDATA[(select COUNT(p) from PhoneNumber p where p.employee = {E}) >= 2]]></c:where>
</c:jpql>
</condition>
</jpqlFilter>
</conditions>
</filter>
для программного задания Condition - аналогично.