powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate cross database query
7 сообщений из 7, страница 1 из 1
Hibernate cross database query
    #37634203
Evsyukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть несколько Java-приложений. Каждое из них имеет свою БД.
Кроме того есть одна общая БД.
Используемые технологии в приложениях на Java: Spring + Hibernate.
Можно ли сконфигурировать Hibernate так, чтобы стало возможным выполнять запросы вида:

Код: sql
1.
2.
3.
select * 
from db1.t1 as ta
join db2.t1 as tb on ta.id = tb.id



Hibernate позволяет использовать в одном приложении несколько БД, но запросы можно выполнять только к одной БД.
Как сделать через Hibernate запрос к нескольким базам? Возможно ли это вообще в Hibernate?
...
Рейтинг: 0 / 0
Hibernate cross database query
    #37634274
mijer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Искать по ключевому слову catalog тут
...
Рейтинг: 0 / 0
Hibernate cross database query
    #37634342
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mijerИскать по ключевому слову catalog тут Каталоги - это базы в одном и том же инстансе СУБД. Если базы физически находятся в разных местах, то задача автора в той постановке, что он привел, нерешаема.
...
Рейтинг: 0 / 0
Hibernate cross database query
    #37634387
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скажу по правде, она не решаема, не только в хибере, но и нигде ВНЕ субд (напр. MDAC).
Только в СУБД можно сделать dbLink на внешнюю БД\Excell файл и писать
select link@table join
______________________________________________
"Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн.
AutoPOI.ru — ГИС-технологии для Oracle
...
Рейтинг: 0 / 0
Hibernate cross database query
    #37637563
igorolv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разные базы для хибера - это разные сессии к разным источникам данных.

Если из одной базы "видна" другая (с помощью того же 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.
private setКод_Справочного_Объекта(Код_Справочного_Объекта) {
    this.Код_Справочного_Объекта = Код_Справочного_Объекта
    this.справочный_объект = Context.getContext().getСправочнаяБдSessionFactory()....getСправочныйОбъектDAO().getById(Код_Справочного_Объекта);
}
...
Рейтинг: 0 / 0
Hibernate cross database query
    #37696861
Evsyukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы.
Вывод, в общем - задача нерешаема (хотя, в некоторых частных случаях можно придумать workaround).
...
Рейтинг: 0 / 0
Hibernate cross database query
    #37699524
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JBoss teiid
oracle heterogeneous services
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate cross database query
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]