Весна JPA выбрать, где элемент в коллекции - PullRequest
0 голосов
/ 28 октября 2019

У меня есть сущность Person и сущность Session. Session имеет коллекцию @ManyToMany Person с. Теперь я хотел бы выбрать всех лиц, которые содержатся в коллекции persons любого сеанса . Я попробовал:

    @Query("select p from Person p where p in (select s.persons from Session s)")
    fun findAllInAnySession(): MutableIterable<Person>

Однако я получаю следующую ошибку:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from session session1_ cross join session_persons persons2_, person person3_ whe' at line 1

Я использую MySQL в качестве базы данных.

Спасибо за вашу помощь!

1 Ответ

1 голос
/ 28 октября 2019

Я не думаю, что вы можете использовать сложный объект в предложении IN, даже в JPQL. Вы пытаетесь установить, является ли объект лица членом группы лиц в вашем запросе, что звучит приемлемо, но, по моему мнению, поставщик JPA не может обработать такой запрос. Я думаю, что следующий запрос может вернуть то, что вы хотите:

select s, p from Sessions s join s.persons p
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...