|
|
|
Можно ли подружить оракловый merge и hibernate
|
|||
|---|---|---|---|
|
#18+
Все привет, можно ли подружить оракловый мерж и хибер? Пробую делать через тег <sql-insert> (xml конфигурация). Соответвенно пишу так: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Есть два вопроса: 1) По идее Хибер при инсерте ожидает получить новосгенеренный айдишник? А у меня то может произойти апдейт 2) Как протянуть свои значения вместо цифр в фигурных скобках? Тут проблема в том, что кастомный SQL не получится использовать ((( У меня отношение многие ко многим и с помощью мержа я как раз хочу сохранять дочерниче записи. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2013, 12:50:36 |
|
||
|
Можно ли подружить оракловый merge и hibernate
|
|||
|---|---|---|---|
|
#18+
risk, merge - это даже для БД крутая штука. Так сказать "умный объект SQL" Навешивать её на ОРМ даже идеологически неверно. Подумайте от ех кто после вас)) IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2013, 12:56:52 |
|
||
|
Можно ли подружить оракловый merge и hibernate
|
|||
|---|---|---|---|
|
#18+
Да у нас вот в чем проблема.... По всему проекту куча отношений многие-ко-многим, при этому записи удалять нельзя, а можно только изменять их статус при удалении, соответственно при повторной вставке должен происходить апдейт..... Таких мест куча, надо однообразно решить эту проблему. Пока что такой мерж кажется наиболее вменяемым решением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2013, 13:00:18 |
|
||
|
Можно ли подружить оракловый merge и hibernate
|
|||
|---|---|---|---|
|
#18+
riskмногие-ко-многим, при этому записи удалять нельзя, а можно только изменять их статус при удалении, кошмар. У меня был один раз теоретик-постановщик, которому было всё рано "Удалить" или "Пометить на удаление". Сочувствую. Теперь вы это потянете на ОРМ из СУБД. Не знаю что тут посоветовать. Это эксклюзив проект) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2013, 13:07:49 |
|
||
|
Можно ли подружить оракловый merge и hibernate
|
|||
|---|---|---|---|
|
#18+
Ну кошмар не кошмар и делать что-то надо. При этом, есть места где тянуться все записи с БД вне зависимости от статуса, а потом уже на стороне Явы фильруется перед тем как отдать на UI. Для этих случаев я запилил универсальный мержер с помощью генериков. Но есть места в которых используются фильтра и тянутся только активные записи.... И тут начинает веселуха. В идеале хотел бы все перевести все к одной модели - все записи фильтруются на уровне фетча с БД, а инсертятся уже мержем.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2013, 13:13:56 |
|
||
|
Можно ли подружить оракловый merge и hibernate
|
|||
|---|---|---|---|
|
#18+
risk, А может merge делать отдельно, вне ORM, а потом соответствующие объекты рефрешить?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2013, 13:16:32 |
|
||
|
Можно ли подружить оракловый merge и hibernate
|
|||
|---|---|---|---|
|
#18+
mad_nazgulrisk, А может merge делать отдельно, вне ORM, а потом соответствующие объекты рефрешить?! Ну в идеале я видел это так: У меня есть например юзер, у него есть набор ролей, набор профилей, набор еще чего то там. И вот у меня есть перзистент объект юзер. Я изменил его наборы ролей-профилей-чего бы либо. И потом просто делаю getHibernateTemplate.saveOrUpdate(юзер); И для каждого элемента каждого сета вызывается мерж..... Что бы было удобно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2013, 13:21:43 |
|
||
|
Можно ли подружить оракловый merge и hibernate
|
|||
|---|---|---|---|
|
#18+
riskmad_nazgulrisk, А может merge делать отдельно, вне ORM, а потом соответствующие объекты рефрешить?! Ну в идеале я видел это так: У меня есть например юзер, у него есть набор ролей, набор профилей, набор еще чего то там. И вот у меня есть перзистент объект юзер. Я изменил его наборы ролей-профилей-чего бы либо. И потом просто делаю getHibernateTemplate.saveOrUpdate(юзер); И для каждого элемента каждого сета вызывается мерж..... Что бы было удобно Кто мешает перегрузить saveOrUpdate юзер?! И там тупо вызвать соответствующий merge ч/з JDBC? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2013, 13:24:04 |
|
||
|
Можно ли подружить оракловый merge и hibernate
|
|||
|---|---|---|---|
|
#18+
)))))))) интересный подход.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2013, 13:25:11 |
|
||
|
Можно ли подружить оракловый merge и hibernate
|
|||
|---|---|---|---|
|
#18+
Сейчас смотрю в сторону класса org.hibernate.collection.PersistentSet.class или чего-то подобного, что бы в одной точке переопределить алгоритм сохранения списка в БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2013, 13:28:40 |
|
||
|
Можно ли подружить оракловый merge и hibernate
|
|||
|---|---|---|---|
|
#18+
risk)))))))) интересный подход.... А мне кажется стандартный. Чем проще, тем лучше. ;-) P.S. вот за это я не люблю различные ORM. Что-то простое сделать еще можно, шаг в сторону, начинаются приключения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2013, 15:47:23 |
|
||
|
Можно ли подружить оракловый merge и hibernate
|
|||
|---|---|---|---|
|
#18+
mad_nazgulА мне кажется стандартный. Чем проще, тем лучше. ;-) видать вы не видели дефолтную реализацию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2013, 16:19:48 |
|
||
|
Можно ли подружить оракловый merge и hibernate
|
|||
|---|---|---|---|
|
#18+
risk, Как вариант поместить ваш merge в хранимую процедуру или функцию, и дергать ее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2013, 14:15:39 |
|
||
|
Можно ли подружить оракловый merge и hibernate
|
|||
|---|---|---|---|
|
#18+
Максим Нrisk, Как вариант поместить ваш merge в хранимую процедуру или функцию, и дергать ее. Началось :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2013, 16:48:47 |
|
||
|
Можно ли подружить оракловый merge и hibernate
|
|||
|---|---|---|---|
|
#18+
Ну, во первых можно указать Hibernate свой SQL для сохранения , но это придется ручками все классы раскрашивать... Лучше расширить Dialect (возможно еще какие то сервисы ) и генерировать MERGE вместо INSERT . Вся работа с Hobernate станет стандартной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2013, 22:51:40 |
|
||
|
Можно ли подружить оракловый merge и hibernate
|
|||
|---|---|---|---|
|
#18+
пролетевшийНу, во первых можно указать Hibernate свой SQL для сохранения , но это придется ручками все классы раскрашивать... Лучше расширить Dialect (возможно еще какие то сервисы ) и генерировать MERGE вместо INSERT . Вся работа с Hobernate станет стандартной. нельзя так сделать, потому что инсер с точки зрения хибера должен генерить новый айдишник ))) Я так понимаю что самый нормальный варианта написать свою реализацию EntityPersister ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2013, 11:44:05 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=226&tid=2129238]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
41ms |
get topic data: |
23ms |
get forum data: |
5ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
| others: | 285ms |
| total: | 480ms |

| 0 / 0 |
