|
|
|
Hibernate cross database query
|
|||
|---|---|---|---|
|
#18+
Есть несколько Java-приложений. Каждое из них имеет свою БД. Кроме того есть одна общая БД. Используемые технологии в приложениях на Java: Spring + Hibernate. Можно ли сконфигурировать Hibernate так, чтобы стало возможным выполнять запросы вида: Код: sql 1. 2. 3. Hibernate позволяет использовать в одном приложении несколько БД, но запросы можно выполнять только к одной БД. Как сделать через Hibernate запрос к нескольким базам? Возможно ли это вообще в Hibernate? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2012, 00:32:15 |
|
||
|
Hibernate cross database query
|
|||
|---|---|---|---|
|
#18+
Искать по ключевому слову catalog тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2012, 02:01:00 |
|
||
|
Hibernate cross database query
|
|||
|---|---|---|---|
|
#18+
mijerИскать по ключевому слову catalog тут Каталоги - это базы в одном и том же инстансе СУБД. Если базы физически находятся в разных местах, то задача автора в той постановке, что он привел, нерешаема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2012, 08:16:03 |
|
||
|
Hibernate cross database query
|
|||
|---|---|---|---|
|
#18+
скажу по правде, она не решаема, не только в хибере, но и нигде ВНЕ субд (напр. MDAC). Только в СУБД можно сделать dbLink на внешнюю БД\Excell файл и писать select link@table join ______________________________________________ "Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн. AutoPOI.ru — ГИС-технологии для Oracle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2012, 09:32:43 |
|
||
|
Hibernate cross database query
|
|||
|---|---|---|---|
|
#18+
Разные базы для хибера - это разные сессии к разным источникам данных. Если из одной базы "видна" другая (с помощью того же db-link-а), то можно в описании таблицы задать "префикс", чтобы сгенерированные запросы выглядели примерно так: select user1.table1 join user2.table2 ...join link1@table3 Если же две базы ничего не знают (а, может, и не могут) знать друг о друге, то напрямую select база1.table1 join база2.table2 писать не получится. Но частично решить задачу все же можно. Например, изменив процесс загрузки и сохранения объектов (interceptor-ами или просто поменяв setter-ы). Как вариант: Если сузить задачу до: "При загрузке объекта из одной бд (рабочей), нужно подгружать справочные объекты из другой базы (справочной) по их идентификаторам, имеющимся в таблице объекта рабочей базы.": 1) сбрасываем spring context в статическую переменную, чтобы можно было доставать его из любого места вызовом статического метода. Примеры этого фокуса можно нагуглить на тему "как получить spring context" 2) Описываем в application-context 2 разные sessionFactory, каждая из которых живет на своем личном файле конфигурации hibernate 3) При загрузке объекта из рабочей бд, добавляем в setter идентификатора справочного объекта примерно такой код: Код: java 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2012, 02:34:31 |
|
||
|
Hibernate cross database query
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы. Вывод, в общем - задача нерешаема (хотя, в некоторых частных случаях можно придумать workaround). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2012, 01:31:01 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37634203&tid=2132355]: |
0ms |
get settings: |
20ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
43ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
95ms |
get tp. blocked users: |
2ms |
| others: | 390ms |
| total: | 595ms |

| 0 / 0 |
