|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
Добрый день. Надо сделать что-то типа такого: Код: java 1. 2.
Подскажите, как это можно реализовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 09:16 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
Павел Гужанов Надо сделать что-то типа такого Ишь ты, какой хитрый. Думаю оно такое не умеет аж где-то на уровне jdbc. Там вообще ограничение на то, что можно передать в in, что-то около 1000 id (хотя там все упирается в длину запроса). Да и надо походу писать что-то типа Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 12:49 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
Павел Гужанов, Вообще вопрос интересный. Я сделал через таблицу с id, но мне тоже это не очень нравится. Предлагаю устроить какой-нибудь маленький холивар, чтобы тред не утонул. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 13:16 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
Павел Гужанов, а разве spring-data-jpa запрещает тело метода репозитория писать? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 13:21 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
Ща чтобы точно проверить под рукой ничего jpa-шного нет. Но в интернетах много примеров такого запроса, только вместо массива List-ы и Set-ы crutchmaster Думаю оно такое не умеет аж где-то на уровне jdbc. Опять же проверять лень ща, но в jdbc есть всякие Array типы. Тут больше зависит от того, поддерживает конкретная база и как конкретно фигачит этот массив jpa. Вполне возможно, что он этот массив просто через запятую распишет сам. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 14:07 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
Хотя тут вопрос точно про in? - а native запрос вообще optional может возвращать? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 14:11 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
вообще операция с in не самая быстрая ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 14:21 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
в некоторых базах данных (Oracle), значения in можно передать в виде массива но по ANSI - никак, только макроподстановкой в тело запроса AFAIK ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 16:08 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsevв некоторых базах данных (Oracle) Для явы ничего не нашел вменяемого на этот счёт. Есть биндинг оракляного клиента для ноды, там так нельзя, пишут мол делай через запятую. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 03:54 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
вадя, В оракле засунуть подзапрос в in тоже самое, что просто связать две таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 03:55 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
SpringMan Но в интернетах много примеров такого запроса, только вместо массива List-ы и Set-ы Кидай ссылки, потому что я нахожу только костыли типа вот такого https://stackoverflow.com/questions/3107044/preparedstatement-with-list-of-parameters-in-a-in-clause Причём у них там Id штук 20, а надо тысяч 5. Предлагают еще через массив в самой субд, как я понял, но хз как оно там будет работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 03:56 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
Тюнить базу и смотреть планы выполнения, оптимизатор субд вроде задачи не было. Поэтому join массива в строку через запятую и в in parameter. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 07:24 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Поэтому join массива в строку через запятую и в in parameter. А если список id очень большой? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 07:40 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
crutchmaster PetroNotC Sharp Поэтому join массива в строку через запятую и в in parameter. А если список id очень большой? В смысле для кого большой? Для сети, для базы оптимизатора, для глаз человека? Я как то искал ответ на вопрос, какая максимальная длина урл. )))) 2048 символов. Это много или мало? Поэтому ответ - 1. это оффтоп в топике. 2. надо смотреть индивидуально.....для кого "много". Это архитектура. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 07:46 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
PetroNotC Sharp В смысле для кого большой? Оракл, например, вываливает ошибку если там больше 1к ид. https://stackoverflow.com/questions/400255/how-to-put-more-than-1000-values-into-an-oracle-in-clause Запросы должны работать с любым массивом данных. И с 20 и с 25000 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 07:49 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
crutchmaster, Конечно тысяча много. Но у ТС где видно что там тысяча? Он вроде просто хотел записать код в пару строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 07:53 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
crutchmaster Запросы должны работать с любым массивом данных. И с 20 и с 25000 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 07:55 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
crutchmaster, У меня в проекте два метода. Один для больших данных, но тормозит многопользовательский режим. Другой для маленьких, но не грузит этот режим. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 07:56 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
Павел Гужанов, в интерфейсе Query есть метод setParameterList с несколькими перегрузками ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 09:45 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
skyANA в интерфейсе Query есть метод setParameterList с несколькими перегрузками Что на выходе получится? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 09:52 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
crutchmaster skyANA в интерфейсе Query есть метод setParameterList с несколькими перегрузками Что на выходе получится? https://docs.jboss.org/hibernate/orm/3.2/api/org/hibernate/Query.html#setParameterList(java.lang.String, java.util.Collection) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 10:03 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
Будет выполнена привязка списка значений к выражению вида foo.bar in (:value_list). ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 10:08 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
crutchmaster Кидай ссылки, потому что я нахожу только костыли типа вот такого В ней по порядку : link1 , link2 и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 11:32 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
SpringMan, SELECT * FROM employee WHERE employeeName IN (? , ?) Так это работать не будет с длинной списка больше 1000 или как повезёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 12:13 |
|
Hibernate Repository, nativeQuery. передать массив как параметр запроса
|
|||
---|---|---|---|
#18+
Решено следующим образом: Код: java 1. 2.
Все работает как надо. Спасибо! Нашел вот здесь: https://www.logicbig.com/tutorials/spring-framework/spring-data/native-query.html ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 15:28 |
|
|
start [/forum/topic.php?fid=59&msg=39919085&tid=2120925]: |
0ms |
get settings: |
8ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
46ms |
get topic data: |
2ms |
get forum data: |
1ms |
get page messages: |
415ms |
get tp. blocked users: |
0ms |
others: | 311ms |
total: | 790ms |
0 / 0 |