Способы генерации идентификаторов Hibernate / JPA-микширования - PullRequest
1 голос
/ 18 января 2011

Предположим, у меня следующая ситуация: у меня есть 5 сущностей (уменьшенных ради простоты), из которых я однозначно знаю , что у 3 из них будет несколько записей в базе данных (15-20 или около того). каждый). Оставшиеся 2 сущности будут иметь много записей (тысяч) и также будут быстро расти.

Используя стратегию генерации идентификатора Hibernate по умолчанию (AUTO), это означает, что все записи будут иметь уникальный идентификатор для всех объектов (поскольку существует только 1 последовательность). Я не желаю этого, потому что это означает, что идентификаторы будут быстро расти из-за большого количества записей в некоторых таблицах.

Вопрос № 1 : могу ли я переопределить идентификатор идентификатора для двух больших сущностей, чтобы у каждого из них была своя последовательность, и чтобы остальные включали AUTO? Считается ли хорошей / плохой практикой смешивать и сопоставлять стратегии идентификации? Какие-либо причины, почему я должен / не должен делать это?

Вопрос № 2 : учитывая базу данных Oracle 10g, есть ли плюсы и минусы в отношении стратегий генерации идентификаторов? Например; лучше использовать TABLE вместо SEQUENCE?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 18 января 2011

Вопрос № 1: Нет проблем вообще.Каждый класс сущностей может иметь свою собственную стратегию идентификации.

Вопрос № 2: Последовательности существуют главным образом для генерации суррогатных ключей.Так что пользуйтесь без страха :-)

0 голосов
/ 18 января 2011

с СУБД Oracle, я думаю, вам следует рассмотреть возможность использования последовательности для всех ваших сущностей

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