Короткий ответ: Нет смысла.
Длинный ответ: Hibernate - это ORM, и поэтому он переводит entity state transitions в SQL-запросы. Такие вещи, как cascading, dirty checking, обрабатываются Hibernate, поэтому переход на JDBC означает, что вам придется делать это вручную.
Переключение ORM с использованием подхода ActiveRecord является архитектурным решением, которое имеет значительную стоимость разработки. Любая технология доступа к данным негерметична, поэтому вы не можете изолировать код доступа к данным, чтобы вы могли легко менять любую технологию. Из соображений производительности вы должны будете разработать свою модель данных и свои запросы, чтобы получить максимальную отдачу от своей базы данных.
Для приложений среднего бизнеса в любом случае вам понадобятся методы, специфичные для базы данных (например, CTE, функции окна, LATERAL), поэтому вам нужен собственный SQL в любом случае.
Итак, лучший подход - использовать как Hibernate, так и SQL вместо того, чтобы выбирать один или другой.
Чтобы дать ответ на ваш вопрос:
Вы можете проектировать интерфейсы DAO, так что вы всегда возвращают DTOs что означает, у вас есть две реализации:
Таким образом, вы не сможете использовать сущности, потому что JDBC DAO не может легко получить деревья сущностей, поэтому вам нужно сделать это вручную в любом случае.
Использование Hibernate для проекций только поражает всю цель использования ORM, поэтому вы можете в первую очередь задать свое архитектурное решение.
Это очень зависит от приложения. – Kayaman
Почему бы вам не попробовать JooQ вместо перехода на чистый JDBC? – fge
@fge Речь идет не о оптимизации или переходе к лучшим решениям производительности, а о логическом порядке выполнения таких модификаций уровня данных. – Med