|
|
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
По всему проекту использую JDev + Oracle + EJB. Возникла необходимость вызвать хранимую процедуру с параметрами, один из которых ссылка на курсор (REF IN OUT SYS_REFCURSOR). Код: java 1. 2. 3. 4. 5. 6. Вот что нужно вместо второго параметра подставить? Примеры смотрел - в основном все jdbc напрямую используют... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 16:29:21 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
Проще добратся до Connection и вызвать нормально через CallableStatement http://docs.oracle.com/cd/B25329_01/doc/appdev.102/b25108/xedev_jdbc.htm#BABDGEDA ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 16:36:02 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
BlazkowiczПроще добратся до Connection и вызвать нормально через CallableStatement http://docs.oracle.com/cd/B25329_01/doc/appdev.102/b25108/xedev_jdbc.htm#BABDGEDA Согласен, а как через EntityManager добраться до Connection? Не подскажете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 16:39:34 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
По-моему достаточно просто DataSource заинжектить и получить connection. Он должен быть связан с текущей транзакцией. Большего и не нужно. Если тупой сервер не может выдать правильный connection, тогда кастим EntityManager к его конкретной реализации и достаём оттуда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 16:45:43 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
BlazkowiczПо-моему достаточно просто DataSource заинжектить и получить connection. Он должен быть связан с текущей транзакцией. Большего и не нужно. Если тупой сервер не может выдать правильный connection, тогда кастим EntityManager к его конкретной реализации и достаём оттуда. Вот нашел ответ на счет коннекта (для потомков): Код: java 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 16:47:01 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
Вот нашел ответ на счет коннекта (для потомков): Код: java 1. 2. [/quot] Сори - это не работает ! Зря время убил... говорит: Код: java 1. 2. 3. 4. 5. Так может кто-нибудь знает как правильно через EJB вызвать хранимку? Ну или на счет извлечения Connection из EntityManager? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 17:16:55 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
Virtual StudentТак может кто-нибудь знает как правильно через EJB вызвать хранимку? EJB!=JPA. В EJB получаем connection из DataSource, который лежит в JNDI и вызываем спрок через JDBC. Virtual StudentНу или на счет извлечения Connection из EntityManager? https://www.google.com/search?q=get+connection+from+entity+manager ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 17:25:39 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
BlazkowiczVirtual StudentТак может кто-нибудь знает как правильно через EJB вызвать хранимку? EJB!=JPA. В EJB получаем connection из DataSource, который лежит в JNDI и вызываем спрок через JDBC. Virtual StudentНу или на счет извлечения Connection из EntityManager? https://www.google.com/search?q=get+connection+from+entity+manager Да, да - сорь - EJB!=JPA... Ссылочку (слово в слово) я уже часа два вкуриваю. Так толком ничего и не нашел... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 17:33:38 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
EntityManager.getDelegate() что возвращает? Почему не хотите сделать через DataSource? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 17:42:57 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
BlazkowiczEntityManager.getDelegate() что возвращает? Возвращает Object (который представлен классом EntityManagerImpl) Почему не хотите сделать через DataSource?[/quot] Через DataSource? - имеется в виду через JNDI пул соединений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 18:21:54 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
Virtual StudentВозвращает Object (который представлен классом EntityManagerImpl) В EntityManagerImpl разве нет ссылки на connection? Virtual StudentЧерез DataSource? - имеется в виду через JNDI пул соединений? Да. EntityManager получает свои соединения через этот самый пул. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 18:26:29 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
BlazkowiczВ EntityManagerImpl разве нет ссылки на connection? Неа... Virtual StudentЧерез DataSource? - имеется в виду через JNDI пул соединений? BlazkowiczДа. EntityManager получает свои соединения через этот самый пул. Это я понимаю, но как до него (соединения) достучаться..? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 18:36:43 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
Virtual StudentНеа... Какой JPA провайдер? Toplink? Virtual StudentЭто я понимаю, но как до него (соединения) достучаться..? Заинжектить, так же как и EM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 18:52:29 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
Virtual Student , да у вас вообще то и строка вызова не совсем корректна: Код: java 1. Обратите внимание на { } . А так, все ок. Должно отлично работать через EntityManager. Для красивости, конечно, лучше сделать named-native-query и положить его в orm.xml... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 18:56:05 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
P.S. Самого главного то и не спросил... А что вы делаете в процедуре с SYS_REFCURSOR? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 18:58:57 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
Ruslan.IsbarovP.S. Самого главного то и не спросил... А что вы делаете в процедуре с SYS_REFCURSOR? А это не я делаю... Это другой дядька делал на PL/SQL. Нужно тупо забрать данные. А вообще там расчет всякой фигни по базе делается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 19:02:17 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
Ruslan.IsbarovА так, все ок. Должно отлично работать через EntityManager. Для красивости, конечно, лучше сделать named-native-query и положить его в orm.xml... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 19:03:00 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
Ruslan.IsbarovА так, все ок. Должно отлично работать через EntityManager. Для красивости, конечно, лучше сделать named-native-query и положить его в orm.xml... и как там OUT-параметр зарегать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 19:03:29 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
Ruslan.Isbarov Virtual Student , да у вас вообще то и строка вызова не совсем корректна: Код: java 1. Обратите внимание на { } . А так, все ок. Должно отлично работать через EntityManager. Для красивости, конечно, лучше сделать named-native-query и положить его в orm.xml... Меня главный образом волнует вопрос как принять выходной параметр типа ссылки на курсор. В примерах показано, как через обычные соединения можно сделать. Но так, как я стараюсь изучать новые фишки EJB, JPA и т.п., очень хочется узнать как тоже самое можно и нужно делать при помощи JPA. У меня к Вам пламенная просьба Ruslan.Isbarov если не трудно, напишите как правильно вызвать нужно процедуру и забрать возвращаемый параметр в виде ссылки на курсор... Предполагаю, что ссылка будет выглядеть как ResultSet... Или я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 19:08:11 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
Virtual Student , Вы какой JPA-провайдер используете? Вот пример для Hibernate. В orm.xml Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Вызов: Код: java 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 19:11:28 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
BlazkowiczRuslan.Isbarov... и как там OUT-параметр зарегать? А зачем? С SYS_REFCURSOR Hibernate прекрасно умеет работать. Вам даже не нужно задавать значение параметра, как в примере выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 19:16:50 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
Ruslan.Isbarov Virtual Student , Вы какой JPA-провайдер используете? Вот пример для Hibernate. У меня "навязывается" TopLink. В целом меня устраивает, просто я пока новичек в этом деле... Вот нашел еще пример извлечения соединения: Код: java 1. Но, сохранился вопрос! В каком пакете лежит этот: Код: java 1. класс? Кто в курсе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 19:17:47 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
Virtual Student, Используйте либо: 1. Через EntityManager. 2. Через oracle.toplink.queryframework.StoredProcedureCall с жесткой привязкой к TopLink. 3. Через DataSource. Код: java 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 19:28:02 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
Virtual Student, Очень удобно вызывать с использованием Spring. Я как раз недавно делал. Нужно просто инжектировать в сервис DataSource и потом создать шаблон для вызова процедуры. Всю работу по получению коннекта и обработке исключений делает шаблон. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/jdbc.html#jdbc-simple-jdbc-call-3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2012, 00:05:16 |
|
||
|
Помогите вызвать хранимую процедуру Oracle
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Люди, а что в данном случае session ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2012, 17:49:25 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37613754&tid=2132273]: |
0ms |
get settings: |
17ms |
get forum list: |
24ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
53ms |
get topic data: |
16ms |
get forum data: |
3ms |
get page messages: |
85ms |
get tp. blocked users: |
2ms |
| others: | 344ms |
| total: | 556ms |

| 0 / 0 |
