|
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 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
ПылинкаПусть тогда делает как все - перепаковывает в процедуру с двумя OUT Ну еще можно перепаковать в табличный тип Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 14:52 |
|
Hibernate и функции
|
|||
---|---|---|---|
#18+
заменить retval result := LEO_Tbl (); ===> result LEO_Tbl := LEO_Tbl (); в голове функции ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 14:57 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2121160]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
169ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 233ms |
total: | 505ms |
0 / 0 |