Преобразовать запрос метода Spring Data JPA в запрос JPQL - PullRequest
0 голосов
/ 06 декабря 2018

У меня запрос «Spring Data JPA», который я нахожу некрасивым из-за того, что мне нужно несколько раз передавать один и тот же идентификатор пользователя.

Мой запрос:

Page<CompanyEntity> findByClients_User_IdOrOwners_User_IdOrRelations_User_IdOrProjectManagers_User_IdOrSpecialists_User_Id(Long userId1, Long userId2, Long userId3, Long userId4, Long userId5, Pageable page);

Как предложено, я должен переписать этот запрос, чтобы использовать JPQL.

Но я застрял на том, как вытащить пользовательский объект из коллекций

РЕДАКТИРОВАТЬ:

@Query("SELECT company FROM CompanyEntity company JOIN company.owners owners JOIN company.clients clients JOIN company.projectManagers managers JOIN company.specialists specialists JOIN company.relations relations")

1 Ответ

0 голосов
/ 06 декабря 2018
@Query("SELECT company FROM CompanyEntity company JOIN company.owners owners JOIN company.clients clients WHERE :userId IN owners.id OR :userId IN clients.id")
Page<CompanyEntity> find(@param("userId") Long userId, Pageable pageable)

(и так далее для других ассоциаций) должны сделать свое дело.

...