|
|
|
Hibernate и Oracle
|
|||
|---|---|---|---|
|
#18+
Ну не хрена Hibernate на Oracle не заточен. Тут немного поизучал, как через Named Query вызывать Stored Procedure. Для начала, это все же функция, а не процедура, так как оракловые процедуры ничего не возвращають. Во всех умных статейках (типа этой , но я много иде встречал), говориться, что мол возвращайте REF CURSOR и усе будет ок. Это вранье (наглое!). Правильно для JDBC, но не для Hibernate. Судя по статейкам процедуру (функцию, таки) рекомендуется вызывать так: Код: plaintext Код: plaintext Я таки разобрался, как написать функцию, и как ее вызвать из hibernate, чтобы замапировать объект, по результату. Если кому интересно - примерчик дам. Ну и еще кой-чего веселого нарыл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 01:21 |
|
||
|
Hibernate и Oracle
|
|||
|---|---|---|---|
|
#18+
Уважаемый Фуников Юрий. А Вы пробовали повторить сей фокус? Я думаю, нет... Не работает это все, однако. Может, я конечно и сам дурак, не во всем разбрался (хотя, я не один такой). Причина, которую я нашел, достаточно сушественная. Кстати, на тойже страничке (я практицыски все примеры, указанные там старался повторить в деле), есть 2-3 несущественные ошибки. В некоторых случаях просто XML не валидируется. На мой взгляд авторы сего описания брали для своих примеров не рабочий код, а так из головы, мол типа должно работать. Ну а Oracle вообще не проверяли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 18:18 |
|
||
|
Hibernate и Oracle
|
|||
|---|---|---|---|
|
#18+
Ну и? no comments... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2005, 07:07 |
|
||
|
Hibernate и Oracle
|
|||
|---|---|---|---|
|
#18+
andrushok Уважаемый, мне почему-то не нравится ваш тон :) В другом вашем топике я привел рабочий пример с использованием Oracle 9 и SP Насколько я выяснил в качестве loader хранимые процедуры еще не работают, хотя работают как named queries. Кроме того, в том виде в котором они пока предлогаются они совершенно безполезны. Как я уже писал в своем треде в "проектирование БД" query-support'а через ХП в hibernate пока нет. Hibernate team постоянно ведет работы в этом направлении, но на текущий момент их использование для загрузки сохораненных объектов не оправданно. Тем не менее Ваше предположение о том что hibernate не дружит с oracle не верно (см. мой пример) ЗЫ если вы начали изучать какой-то продукт, то, возможно, не стоит после первой же кочки говорить о его качестве и, тем более, убеждать в этом окружающих. У поддержки ХП для CRUD операций в orm-средствах есть своя история и ее надо знать, прежде чем говорить о качестве самих orm-продуктов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 10:48 |
|
||
|
Hibernate и Oracle
|
|||
|---|---|---|---|
|
#18+
вы еще подеритесь, братва! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 10:51 |
|
||
|
Hibernate и Oracle
|
|||
|---|---|---|---|
|
#18+
Уважаемый Фуников Юрий, Давайте не бум зацикливаться на тонах, иначе усе перерастет в не кому не нужную перепалку. Вы про hibernate знаете раз в 10 (может в 100) больше меня, так же Вас сложно заподозрить в каких то там интересах - hibernate бесплатен, не хошь, не ешь. Объяснение, о том, что hibernate team положило на stored procedures примлемо. Но непонятны 2 вещи 1) Почему сей неработающий коде попал в релиз (с неработающими примерами) 2) Почему hibernate team решило, что путь сохранения объектов через stored procedures не оправдан ? На первый вопрос наверно нет ответа и Вы врядле мне тут поможете, если это только не простое разгильдяйство (хотели как лучше, получилось, как всегда). Во всяком случае это настораживает. На второй вопрос Вы можете помочь. Мое мнение, что желание изолировать базу от разработчика (дать ему некий объекто-ориентированный layer и изолировать от RDB понятий) здесь еще пересеклось с желанием сделать порт на все (ну скажем самые популярные) базы. А стандарта на вызов, создание, внутренний яэык процедур/функций пока нема. Вот и нужно обойти эту неприятную тему пока стороной. У меня, конечно свои, специфицкие взгляды, но я не раз встречал 1) Когда была некая policy на разработку web приложения - все изменения в базе только через процедуры. Причина - оптимизировать потом легче. 2) Оч.часто даже в простой select надо добавлять всякие там SQL-расширения, специфицкие, для базы (HINT для оракла, WITH для MsSQL) также в целях оптимизации. 3) Если у Вас достаточно большая таблица и надо ее листать, то использование ROWNUM c _веселым_ запросом не эффективно. Тормозит. Нужно сию проблему решать средствами базы. Все это отнюдь не говорит, что hibernate никуда не годиться. Только о том, что у него есть некие рамки, и он не панацея. И теперь я поясню, чем вызван мой такой _не_здоровый_ интерес к hibernate. Мой начальник ищет пути, как ускорить разработку. При этом есть некое мнение (не мое) что так-сяк работающий коде за неделю _выгоднее_ хорошо работаюшего за две. И hibernate в этом направлении может помочь. И я прихожу к выводу, что это действительно так ... Хотя, мне это совсем не нравиться. Спасибо за пример, я попытаюсь разобраться, что там и как. Что нарою - опубликую. Вот тольки rar надо скачать где-то ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 18:28 |
|
||
|
Hibernate и Oracle
|
|||
|---|---|---|---|
|
#18+
не надо рар качать - вот .zip :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 18:38 |
|
||
|
Hibernate и Oracle
|
|||
|---|---|---|---|
|
#18+
Теперь по делу Давайте не бум зацикливаться на тонах, иначе усе перерастет в не кому не нужную перепалку. Согласен, просто у меня есть сомнения в том что вы услышите то что я вам говорю. Судя по всему вам hibernate навязывают - поэтому налицо предвзятое негативное отношение... 1) Почему сей неработающий коде попал в релиз (с неработающими примерами) действительно пока no comments Почему hibernate team решило, что путь сохранения объектов через stored procedures не оправдан? Они как раз решили наоборот и постепенно развивают продукт в этом направлении. Раньше SP для CRUD не поддерживались - теперь же есть поддержка для insert/update/delete и ведется работа по добавлению поддержки для load Мое мнение, что желание изолировать базу от разработчика (дать ему некий объекто-ориентированный layer и изолировать от RDB понятий) здесь еще пересеклось с желанием сделать порт на все (ну скажем самые популярные) базы. Я совершенно не согласен что hibernate кого-то от чего-то изолирует. Он решает вопрос персистизации объектов на java и все. И я не согласен что hibernate team делает порт на все - они используют jdbc, а та, в свою очередь, позволяет работать с большинством СУБД. Я уже описал свое видение ORM-средств в своем треде http://www.sql.ru/forum/actualthread.aspx?tid=85698 По второму разу писать тоже самое я не хочу. Если действительно хотите разобраться - то, сначало, прочтите мои посты там. 1) Когда была некая policy на разработку web приложения - все изменения в базе только через процедуры. Причина - оптимизировать потом легче. пожалуйста - как я уже писал insert/update/delete уже поддерживаются. 2) Оч.часто даже в простой select надо добавлять всякие там SQL-расширения, специфицкие, для базы (HINT для оракла, WITH для MsSQL) также в целях оптимизации. Для этого есть named query - можно написать что угодно Если у Вас достаточно большая таблица и надо ее листать, то использование ROWNUM c _веселым_ запросом не эффективно. Тормозит. Нужно сию проблему решать средствами базы. Это отдельная тема и ее не стоит обсуждать здесь. Скажу лишь что неэффективность простого select'а одинакова как для простого jdbc так и для hibernate и его использование говорит о плохом дизайне приложения. Т.е. проблема лежит на другом уровне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 18:51 |
|
||
|
Hibernate и Oracle
|
|||
|---|---|---|---|
|
#18+
Так, прогнал Ваш пример про котов. И все работает у Вас. Стал разбираться. Пока про транзакции не нашел причину. А вот с вызовом SP разобрался. Ну вобщем вышла очередная feature (если багом не хочется обзывать). Итого, Ваш рабочий коде Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: plaintext Ну а транзакции я еще подергаю, хотя игра "найдите пару отличий" мне не очень по душе. За _нерабочие_ примеры извиняюсь, они таки рабочие. Но проблема _подобных_ features остается - хотя-бы побольще информации в примерах бы давали, а то как описать в hbm.xml есть, а как вызвать - нема... Кстати, что касаемо SP, я еще кой-чего _нарыл_... Тольки сам разобрался. Далее, к словам цеплятся не охота, но дык извините пожалуйста. Так, все же какое мнение у hibernate team. Один Ваш пост говорил Уважаемый Фуников Юрий"Hibernate team постоянно ведет работы в этом направлении, но на текущий момент их использование для загрузки сохораненных объектов не оправданно." а последний Уважаемый Фуников Юрий"Они как раз решили наоборот и постепенно развивают продукт в этом направлении." Таки немного противоречит друг другу. Хотя, я надеюсь второе вернее. Ну и на последок по поводу Уважаемый Фуников Юрий" ... персистизации объектов на java" Это и есть некий layer. Можно пользовать _только_ его (о чем кстати Hibernate team _настоятельно_ рекомендует), а можно еще и применять свои SQL (чего мне оч. бы хотелось) но при этом нужно будет наступать на грабли типа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Ну вот, а про Уважаемый Фуников Юрий1) Когда была некая policy на разработку web приложения - все изменения в базе только через процедуры. Причина - оптимизировать потом легче. пожалуйста - как я уже писал insert/update/delete уже поддерживаются. Вы меня не совсем поняли. Я имел ввиду не использовать insert/update/delete напрямую (сие работает!) а SP вместо них. Это тоже работает, но с некими выкрутасами для оракла. Для insert надо писать именно STORED PROCEDURE, а для update и delete - FUNCTION. Опять таки примеры недостаточны, я может чего и упустил - до всего доходил трассировкой кода, путь, сами понимаете не самый эффективный. А что до Уважаемый Фуников Юрий2) Оч.часто даже в простой select надо добавлять всякие там SQL-расширения, специфицкие, для базы (HINT для оракла, WITH для MsSQL) также в целях оптимизации. Для этого есть named query - можно написать что угодно Я то имел ввиду несколько другое - практически в кажный SQL может быть необходимость что-то добавить. При этом, ситуация, кады SQL генерится автоматицски - не очень приятна. Вот и все. Ну а Named Query - ценная штука, я супротив ничего не имею. Про ROWNUM действительно не стоит - там много копьев наломать можно. А так, большое спасибо за коментарии и примерчик, это помогло с кое-чем разобратся. Я не такой-уж hibernate-ненависник, хотя, придираюсь, не скрываю сего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 22:57 |
|
||
|
Hibernate и Oracle
|
|||
|---|---|---|---|
|
#18+
Используй ADF BC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2005, 16:59 |
|
||
|
Hibernate и Oracle
|
|||
|---|---|---|---|
|
#18+
Уважаемый Мануальный Вы наш, Вы меня куды-то послали, а куды, я и не понял, однако. Поточнее можно, что сие ADF BC означат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2005, 23:56 |
|
||
|
Hibernate и Oracle
|
|||
|---|---|---|---|
|
#18+
andrushokПоточнее можно, что сие ADF BC означат? тынц Oracle Application Development Framework Business Components если я правильно понял :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2005, 09:23 |
|
||
|
Hibernate и Oracle
|
|||
|---|---|---|---|
|
#18+
Вобщем да есле Вы используете Oracle то они рекомендуют его использовать тот жe OR/M маппанг с кешированием но родной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2005, 11:30 |
|
||
|
Hibernate и Oracle
|
|||
|---|---|---|---|
|
#18+
Самое интересное что нет TopLink - это отдельный продукт ADF BC - это набор бизнес компонет для работы с БД, как я понимаю продолжение bc4j ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2005, 12:11 |
|
||
|
Hibernate и Oracle
|
|||
|---|---|---|---|
|
#18+
Спасиб, посмотрим. Дело хорошее. А линка получне нету? Погуглить то я и сам могу =) Интерестно, как тама с лицензиями и прочим. Кстати, TopLink нам не подходит, проверяли уже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2005, 17:28 |
|
||
|
Hibernate и Oracle
|
|||
|---|---|---|---|
|
#18+
http://www.oracle.com/technology/obe/obe9051jdev/index.htm конкретнее http://www.oracle.com/technology/documentation/jdev/adf_guidelines_manual.pdf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2005, 12:16 |
|
||
|
Hibernate и Oracle
|
|||
|---|---|---|---|
|
#18+
Еще разок спасиб! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2005, 17:54 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=33090135&tid=2152303]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
80ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 450ms |

| 0 / 0 |
