Есть ли способ создать запрос в jpql для «список содержит все в списке» - PullRequest
0 голосов
/ 22 декабря 2018

Я пытаюсь создать запрос, который возвращает пользователей, которые имеют все сертификаты в списке.

Я пробовал это:

public List<UserFilterModel> getUserBasedOnCertificationAndSkills(Filter filter)
{
    StringBuilder queryString = new StringBuilder(
        "select  distinct user from UserEntity user left join fetch user.userCertifications uc where user.validity=true" 
   );
    if(!filter.getCertIds().isEmpty())
    {
        for(Integer id:filter.getCertIds())
            queryString.append(" and "+id+" in uc.certification.id");
    }...

Но он явно не работает.Странно то, что если я изменяю и оператор или работает нормально.

Есть ли другой способ сделать это, как contains в jpql

1 Ответ

0 голосов
/ 22 декабря 2018

Я думаю, что вы хотите:

queryString.append(" and uc.certification.id = " +id);

Вместо:

queryString.append(" and "+id+" in uc.certification.id");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...