JPQL-запрос для поиска всех объектов, соответствующих списку встраиваемых объектов. ⇐ JAVA
JPQL-запрос для поиска всех объектов, соответствующих списку встраиваемых объектов.
У меня есть сущность со встроенным полем, которое можно использовать в качестве бизнес-идентификатора этой сущности.
@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.
Я пытался удалить из запроса любые дополнительные части, такие как соединения, чтобы исключить их влияние, но не знаю, как изменить его, чтобы он работал должным образом.
У меня есть сущность со встроенным полем, которое можно использовать в качестве бизнес-идентификатора этой сущности.
@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.
Я пытался удалить из запроса любые дополнительные части, такие как соединения, чтобы исключить их влияние, но не знаю, как изменить его, чтобы он работал должным образом.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
JPQL, как присоединиться к выборке списка с любым условием соответствия списку
Anonymous » » в форуме JAVA - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-
-
-
JPQL, как присоединиться к выборке списка с любым условием соответствия списку
Anonymous » » в форуме JAVA - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-
-
-
JPQL, как присоединиться к выборке списка с любым условием соответствия списку
Anonymous » » в форуме JAVA - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-
-
-
JPQL, как присоединиться к выборке списка с любым условием соответствия списку
Anonymous » » в форуме JAVA - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-