hibernate дао ссылки на внешние БД? - PullRequest
1 голос
/ 16 февраля 2012

изначально все мои сущности находятся в одной БД. например у меня есть 2 таблицы / классы: A и B,

A имеет однозначное отображение на B, поэтому мы можем выполнить A.getB (). и это создает запрос к таблице B.

Теперь предположим, что наша БД становится слишком загруженной / занятой, и мы обнаружили, что таблица B очень большая, но к ней редко обращаются, поэтому мы перемещаем B в другую таблицу (или даже в другое хранилище данных, например, noSQL). теперь мой вопрос: как можно поддерживать легкий переход к графу объектов, предоставляемый hibernate?

Первоначально я мог получить объект A: A a = DaoForA.get (id_for_a); тогда я могу сделать a.getB (), не думая о базовой операции с БД, как будто все уже находится в памяти. теперь, когда таблица B перемещена в другую БД, все еще возможно достичь этого прозрачного обхода? Я предполагаю, что A.hbm.xml следует изменить в тегах сопоставления, поскольку таблица B больше не существует, поэтому A.hbm.xml не знает о существовании B, поэтому этот автоматический поиск не может быть выполнен?

Большое спасибо Ян

1 Ответ

0 голосов
/ 16 февраля 2012

Hibernate сущности не могут иметь связи с сущностями из другой базы данных. Вместо использования отдельных баз данных см.

  1. если вам действительно нужно это сделать. Если B используется редко, размещение его в одной и той же БД не принесет вреда. А если база данных слишком велика, купите новый жесткий диск: аппаратное обеспечение дешево.
  2. , если база данных может быть кластеризованной.

Программирование в Hibernate «как будто все уже в памяти» - это путь к катастрофе. Вам нужно понять, что Hibernate делает за сценой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...