Не всегда хороший подход для генерации схемы БД из аннотированных сущностей. Хотя в теории это звучит замечательно - на практике часто генерируемая схема не является оптимальной и не удовлетворяет и опытного администратора баз данных.
Подход, которым я следую в своем рабочем процессе, заключается в создании сущностей и схемы БД отдельно, при этом все еще используется довольно интеллектуальный инструмент для создания схемы - либо что-то вроде Liquibase , который не зависит от базы данных, поддерживает ревизии, откаты и т. д. ... или пользовательский запеченный инструмент миграции, который просто выполняет сильно оптимизированные специфичные для БД сценарии sql.
Возможно, это звучит для вас не идеально, но я могу заверить, что оно выполнит работу и сохранит согласованность кода, связанного с вашей схемой, поскольку, как указал Григорий, не все, что связано с базой данных, может быть сгенерировано из сущностей в любом случае.
Однако я могу быть полезен для генерации схемы из объектов для тестовой базы данных, в отношении которых выполняются модульные и интеграционные тесты. Предполагая, что вы используете, скажем, PostgreSQL - производственный процесс, вы можете решить ускорить выполнение модульных тестов, запускающих некоторую встроенную базу данных в памяти, например H2, которая создается из сущностей до запуска тестов и автоматически исчезает (поскольку она была в памяти). ) после завершения испытаний. Это очень распространенная практика.