Несколько единиц постоянства JPA, указывающих на одну и ту же базу данных? - PullRequest
5 голосов
/ 08 октября 2010

Можем ли мы иметь более одного устройства хранения JPA, указывающего на одну и ту же базу данных в разных проектах Java и одновременно развернутого на сервере? В то же время я имею в виду, что не развернут в одну секунду, а развернут вместе. Я использую базу данных hsqldb.

У меня есть модель клиент-сервер для моего проекта. У меня есть одна единая таблица базы данных, в которой сервер заполняет данные, а затем клиент обращается к этим данным в другом проекте. Я могу успешно заполнить базу данных через сервер. Но при развертывании клиентского проекта все данные из базы данных стираются.

Я использую <property name="hibernate.hbm2ddl.auto" value="update" /> для обоих постоянных единиц.

1 Ответ

3 голосов
/ 08 октября 2010

Можем ли мы иметь более одного устройства хранения JPA, указывающего на одну и ту же базу данных в разных проектах Java и одновременно развернутого на сервере?

Пока вы этого не сделаетеиметь несовместимые отображения в обоих проектах, это должно работать.Вы не сможете использовать кэширование второго уровня.

Но при развертывании клиентского проекта все данные из базы данных стираются.(...)

Это не совсем то поведение, которое я ожидал бы с hbm2ddl.auto, установленным на update, но я не знаю, правильно ли поведение определено при использовании в "кластере".-подобная "среда (с несколькими JVM, выполняющими обновление одновременно).

Что происходит при развертывании клиента после завершения инициализации серверной части?

Мои советы:

  • Настройте ведение журнала, чтобы точно видеть, что происходит
  • Если вы используете одни и те же объекты, возможно, не делайте update на клиенте и сервере (хотя это не должно быть проблемой, если вы делаете это один за другим).
  • В конечном итоге, вообще не использует update в производственной базе данных .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...