Очевидно, что вы теряете доступ к определенным функциям базы данных, если вы пишете независимую базу данных приложения.База данных, за исключением автоматической оптимизации, выполняемой JPA и Hibernate, сводится к общим функциям.Вы должны установить некоторые вещи на автоматический и доверять JPA / Hibernate, чтобы сделать это правильно, что вы могли бы установить конкретно, если бы вы знали базу данных (например, стратегии генератора идентификаторов).
Но, похоже, что специфические особенности разработчикабазы данных не имеют отношения к решению, поэтому они не могут иметь отношение к заявке.Какие другие причины могут повлиять на решение (например, цена, деньги, наличные деньги, личные отношения, инструменты управления, требования к оборудованию, существующие знания и личная информация), можно только предположить.
Так что ИМХО у вас нет выбора,Строго избегайте ничего конкретного базы данных.Это включает в себя разрешение JPA / Hibernate генерировать схему (ваша точка № 2).В этой настройке проекта вы не должны возиться с базой данных вручную.
Ну ... к сожалению, в JPA / Hibernate есть некоторые скрытые ловушки, которые делают ее зависимой от базы данных (например, логарифмические функции не отображаются согласованно).Таким образом, вы должны запустить все свои тесты для всех возможных баз данных с первого дня.Когда вы пишете «Наилучшее предположение ...», вам нужно просто взять любую базу данных и протестировать ее.Должно быть легко настроено с данным стеком.
И вы должны попытаться ускорить решение об используемой базе данных, если это возможно.