Если вы просто хотите обновить схему, но не хотите вводить что-то такое тяжелое, как Hibernate, есть несколько хороших альтернатив:
- Flyway - Предоставьте сценарии миграции вместе с приложением для его обновления во время развертывания.
- Liquibase - укажите XML-описание вашей схемы и разрешите Liquibase обновить схему.
Flyway требует от вас написания SQL-кода для миграции между различными версиями вашего приложения. Он вообще не генерирует DDL (SQL для изменения схемы). Он просто запускает SQL, который вы ему даете. Если вы знакомы с SQL и хотите использовать все функции, предоставляемые вашей базой данных, я настоятельно рекомендую это.
Код для запуска миграции может быть помещен в ServletContextListener. Пример кода, который можно использовать там, приведен на странице Интеграция приложений Flyway .
Liquibase работает, читая файл XML, описывающий изменения схемы, необходимые для обновления вашей базы данных до последней схемы. Эти изменения применяются по порядку. Это означает, что ваша схема и изменения с большей вероятностью будут переносимы на другие базы данных, но, возможно, труднее использовать функции, характерные для вашей базы данных.
Liquibase предоставляет собственный ServletContextListener, который вы можете использовать. См. Страницу ServletListener в документации.
Если вы хотите внедрить ORM, вы можете посмотреть:
- Hibernate - ORM с множеством функций (и довольно много зависимостей)
- EclipseLink - ранее Oracle TopLink. Это выглядит более отточенным, чем в Hibernate, но имеет меньше возможностей.