Как сделать приложение Hibernate независимым от БД? - PullRequest
2 голосов
/ 13 декабря 2010

В настоящее время мы используем Oracle 10g для внутреннего проекта, и это вряд ли изменится, но в конечном итоге мы собираемся предложить это приложение другим клиентам, и нам необходимо предложить альтернативную бесплатную БД.

Так, каков наилучший способ сделать уровень персистентности Hibernate независимым от используемой основной СУБД?В идеале я хотел бы иметь возможность просто изменить URL-адрес JDBC и используемый диалект и переключаться между (по крайней мере) Oracle 10g и MySQL или PostgreSQL.

Основная проблема связана со стратегией генерации идентификатора.В настоящее время мы используем генераторы на основе последовательностей для наших идентификаторов, по одной последовательности на таблицу.Очевидный шаг, похоже, переключается на «родную» стратегию.Но тогда это будет одна уникальная последовательность для всех таблиц?Что будет с существующими данными в нашей производственной системе, работающей на Oracle?Как мигрировать?Что такое ловушки?

Что еще нужно знать при переключении с одной СУБД / диалекта на другую?

1 Ответ

3 голосов
/ 13 декабря 2010

Я думаю, что hilo ID Generator является переносимым для всех баз данных.Но если вы выбрали «нативный», у нас возникнут проблемы с переносом данных из базы данных.Лучше начинать с нуля в новой базе данных, инициализируя исходные данные схемы, создавая объекты и используя Hibernate для их сохранения.Это означает, что больше не нужно инициализировать схему путем восстановления из одной из резервных копий базы данных и удаления строк транзакций:)

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