|
Hibernate и функции
|
|||
---|---|---|---|
#18+
Есть функция, которая имеет один входной и один выходной параметры. Я нашла в интернете, как можно вызвать функцию с входными параметрами через NativeQuery (Например, https://vladmihalcea.com/how-to-call-oracle-stored-procedures-and-functions-from-hibernate/) Но у меня есть еще и выходной параметр. Насколько я понимаю, в этом случае можно попробовать обойтись чистым jdbc (получить через сессию коннект и работать с ним) Но, возможно, есть еще какие-то варианты? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 00:09 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
Viollin...Я нашла в интернете... https://vladmihalcea.com/how-to-call-oracle-stored-procedures-and-functions-from-hibernate/) ... Но у меня есть еще и выходной параметр... Вроде и зрение у меня плохое и очки до сих пор не купил, но смотрю в браузер по Вашей же ссылке и вижу Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 01:41 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, это хранимая процедура. А у меня функция. Она кроме in и out имеет еще return. Насколько я понимаю, выделенный вами код не позволяет получить возвращаемое значение. Поправьте меня, пожалуйста, если ошибаюсь ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 11:15 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
ViollinА у меня функциядай ссыль какая база и что там за функция и почему не хранимка. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 11:46 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, какую именно вам ссылку надо? База оракловая. Насколько я помню, хранимая процедура не возвращает значение (речь про return). Хранимая функция умеет возвращать значение. Вопрос в том, что представленный код для хранимой процедуры не умеет возвращать значение. Или же я не нашла нужного метода? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 12:20 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
OK И функции и процедуры коротко обзывают хранимками. Теперь ждем ошибку на выше код что вам дали. Вы пробуйте, думать будте после ошибки. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 12:58 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
PetroNotC SharpOK И функции и процедуры коротко обзывают хранимками. Теперь ждем ошибку на выше код что вам дали. Вы пробуйте, думать будте после ошибки. Не совсем понимаю, как адаптировать функцию под этот код. Функция, соответственно {? = call func (?, ?) } По аналогии с jdbc Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Получаю ошибку PLS-00306 ошибочно число или типы аргументов при обращении к 'func' ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 14:12 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
Viollin, Теперь дайте заголовок хранимки - create proc.... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 14:27 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
ViollinLeonid Kudryavtsev, это хранимая процедура. А у меня функция. Она кроме in и out имеет еще return. Насколько я понимаю, выделенный вами код не позволяет получить возвращаемое значение. Поправьте меня, пожалуйста, если ошибаюсь Любую ф-цию можно переделать в анонимный блок Примерно так (не проверял): Код: plsql 1. 2. 3. 4. 5. 6.
p.s. возможно ошибаюсь с точкой запятой после последнего end. Никогда не помнил, когда нужна точка с запятой, когда не нужна. Проще проверить оба варианта, чем в доке ковырятся ))). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 14:37 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
p.p.s. Как минимум PL/SQL блок можно попытаться скормить в createNativeQuery интерфейс Query так же замечательно имеет и set и getParameter методы p.p.p.s. Eclipse и java на компьютере стоит, но с hibernate дел обычно не имею. Если выложите __рабочий__ и __полный__ test case проекта с вызовом какой нибудь stored procedure, то тогда смогу скомпилировать и посмотреть более предметно. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 14:52 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
поискал в гугле, сходу Hibernate примера не нашел. https://vladmihalcea.com/how-to-call-oracle-stored-procedures-and-functions-from-hibernate/ Another approach is to call the database function using plain JDBC API: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 14:58 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
PetroNotC SharpViollin, Теперь дайте заголовок хранимки - create proc.... Код: plsql 1. 2. 3.
Функция рабочая и нормально отрабатывает на jdbc Leonid Kudryavtsevпоискал в гугле, сходу Hibernate примера не нашел. https://vladmihalcea.com/how-to-call-oracle-stored-procedures-and-functions-from-hibernate/ Если вы обратите внимание, то ссылку на этот сайт я давала еще в самом первом посте. Как и указывала на то, что можно сделать, уйдя с hibernate на jdbc. Но вопрос был о том, можно ли избежать как раз того кода, что вы привели. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 23:42 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
ViollinПолучаю ошибкутеперь найдите пример с jpa 2.1 и сделайте его. То есть сделайте по книжке. А потом уже свой. И стек ошибки нужна давать полный. https://forum.hibernate.org/viewtopic.php?f=1&t=1006663&view=next ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 07:39 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
PetroNotC SharpViollinПолучаю ошибкутеперь найдите пример с jpa 2.1 и сделайте его. То есть сделайте по книжке. А потом уже свой. И стек ошибки нужна давать полный. https://forum.hibernate.org/viewtopic.php?f=1&t=1006663&view=next А не могли бы вы привести пример кода для функции? Или хотя бы ссылку на такой код, потому что я примеров с функциями не нашла( ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 09:15 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
Viollin, Я дал ссыль. Там возврат класса конечно, но вы его сделайте и потом пробуете на простой тип. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 09:42 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
Viollin, List <Reference> l = q.getResultList (); Функция? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 09:46 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
Viollin, Ссылок не найдете так задача странная. Хранимки и ОРМ. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 09:49 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
ViollinНо вопрос был о том, можно ли избежать как раз того кода, что вы привели. Теоретически, createNativeQuery вроде для этого и придумано практически, проверять банально лень, у меня минимум часа 2-3 на проверку уйдит, под рукой никакого hibernate проекта нет ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 15:51 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, 100 летвОбед, а про SingleResult забыли? Мало вас в водонапорной башне учили? Там это все было. Код: java 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 22:19 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
ViollinЕсть функция, которая имеет один входной и один выходной параметры. Я нашла в интернете, как можно вызвать функцию с входными параметрами через NativeQuery (Например, https://vladmihalcea.com/how-to-call-oracle-stored-procedures-and-functions-from-hibernate/) Но у меня есть еще и выходной параметр. Насколько я понимаю, в этом случае можно попробовать обойтись чистым jdbc (получить через сессию коннект и работать с ним) Но, возможно, есть еще какие-то варианты? Я голосую за последний пункт. За чистый jdbc если он просто работает. Простой расчет. Короткий стек - просто ловить ошибки. Длинный стек jdbc+Hibernate - больше потенциальных мест для ошибок. Вообще хибернейт пришел из другой вселенной. Из вселенной JPA/ORM где вообще нет такого понятия как хранимая процедура. Более того. Чистые хибернейт решения не примемлют хранимки как таковые и выкашивают их из проекта косой или топором. Поэтому само по себе желание - странное и его надо обсуждать на самом верхнем уровне. Тоесть на уровне лиц которые определяют дизайн и архитектуру всего проекта в целом. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 11:03 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
maytonЯ голосую за последний пункт. За чистый jdbc если он просто работает. Простой расчет. Короткий стек - просто ловить ошибки. Длинный стек jdbc+Hibernate - больше потенциальных мест для ошибок. Вообще хибернейт пришел из другой вселенной. Из вселенной JPA/ORM где вообще нет такого понятия как хранимая процедура. Более того. Чистые хибернейт решения не примемлют хранимки как таковые и выкашивают их из проекта косой или топором. Поэтому само по себе желание - странное и его надо обсуждать на самом верхнем уровне. Тоесть на уровне лиц которые определяют дизайн и архитектуру всего проекта в целом. "Все это, все верно" - как говорил т. Саахов. Хранимки не имеют прямой связи с ORM. Но тогда придется отказаться от хэша второго уровня. Вот Леонид должен помнить, как "затейники" пришивали параллельно к разработке на хибере еще чистых ораклистов, кэшем пал жертвой дури "архитекторов". ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 11:51 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
В данном примере с функцией кеш 2 левела не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 12:20 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
Пылинкак разработке на хибере еще чистых ораклистов, кэшем пал жертвой дури "архитекторов". Кэш не пал. Кэша там изначально не было, падать было не чему. Ну и он бы не сильно помог. Изначальный архитектор-затейник нетрадиционной ориентации живет на Западном побережье, хибернет головного мозга во всю силу (нетрадиционной - в обычном смысле этого слова, этот факт Оракл не скрывал). p.s. путь данных: настройка в базе -> метаописания в Java коде -> компилятор метоописаний -> XML -> парсинг в структуры при загрузке.... JS -> JSON -> XML -> дерево в Java в структуре построенная по метаописаниям -> объекты хибера -> хибер -> Cobol -> DB Хибер через копи-буки кидал данные в Cobol -> Cobol выдавал SQL Откуда там могли остаться рабочие кэши Хибера? ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 12:59 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
Пылинкаа про SingleResult забыли?.... У автора вопроса достаточно сложный случай Ф-ция возврашающая OUT параметры. AFAIK SELECT не пойдет как класс. только анонимный блок. p.s. Ну и у нас Java почти нет. Все хардкоре. Forms, PL/SQL, PHP, QT ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 13:03 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevУ автора вопроса достаточно сложный случай Ф-ция возврашающая OUT параметры. AFAIK SELECT не пойдет как класс. только анонимный блок. Да, проспал. Я еще удивился что ты не ответил сразу. Пусть тогда делает как все - перепаковывает в процедуру с двумя OUT ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 14:27 |
|
|
start [/forum/topic.php?fid=59&msg=39840754&tid=2121160]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
171ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 297ms |
0 / 0 |