JPQL-запрос для поиска всех объектов, соответствующих списку встраиваемых объектов.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 JPQL-запрос для поиска всех объектов, соответствующих списку встраиваемых объектов.

Сообщение Anonymous »


У меня есть сущность со встроенным полем, которое можно использовать в качестве бизнес-идентификатора этой сущности.

@Entity общественный класс Person { @Идентификатор @Column(name = "ID") частный длинный идентификатор; @Встроенный личный идентификатор идентификатора; } Встраиваемый Идентификатор открытого класса { @Column(name = "business_id") частная строка businessId; @Column(name = "client_id") частный целочисленный идентификатор клиента; @Column(name = "dep_id") частный целочисленный depId; Когда я использую Spring JPARepository для поиска всех объектов, идентификатор которых находится в списке, с помощью метода: List findByIdentifierIn(List идентификаторы);

Он работает нормально независимо от того, сколько идентификаторов я указываю в списке.

Но я хотел написать запрос на объединение с какой-то другой таблицей и попробовал использовать такой метод с запросом:

@Query("select p " + "от человека п" + "left join получить статус p.status" + "где p.identifier = :identifiers") List findByIdentifierIn(@Param("identifiers") List идентификаторы); И теперь, если я передаю один список элементов в качестве идентификаторов, он все равно работает нормально, но если есть несколько элементов, я заканчиваю с ошибкой, например, с двумя элементами, которые я получаю:

индекс столбца выходит за пределы диапазона: 3, количество столбцов: 2 Я проверил выполняемые запросы, и JPARepository генерирует запрос, параметры которого обрабатываются правильно:

//выбираем поля... от пользователей.person person0_ где (person0_.business_id, person0_.client_id, person0_.dep_id) в ((?, ?, ?), (?, ?, ?), (?, ?, ?)) но запрос, который я написал, заканчивается так:

где (person0_.business_id, person0_.client_id, person0_.dep_id) = (?, ?); Как написать запрос, который будет правильно обрабатываться для нескольких идентификаторов в списке?

Я ожидал, что мой запрос будет работать так же, как тот, который был сгенерирован JPARepository.

Я пытался удалить из запроса любые дополнительные части, такие как соединения, чтобы исключить их влияние, но не знаю, как изменить его, чтобы он работал должным образом.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»