Я согласен с @Timo. Единственное другое понимание, которое я хотел бы добавить/расширить, это то, что ORM имеет разную семантику от чистого доступа к вашим данным.
Пункт ORM - абстрагировать от факта, что ваши данные находятся в БД вообще, насколько это возможно. Когда вы используете ORM правильно, все операции сохранения выполняются одним (надеюсь) тонким слоем. Объекты вашей модели не будут иметь почти никакого кода сохранения; тот факт, что вы используете ORM, должен быть невидимым для вашей модели.
Из-за этого ORM очень хорошо делает вашу жизнь легкой для определенных типов операций, а именно простых операций CRUD. Вы можете загружать объекты модели, представлять их, обновлять их, легко удалять. Это облегчает вашу жизнь, потому что, когда вы получаете доступ к своим данным, вы возвращаете объекты модели, на которых вы можете писать бизнес-логику. Если вы используете JDBC, вам придется «убрать» ваши экземпляры объектов из данных, что может быть сложным и подверженным ошибкам.
ORM не всегда лучший выбор. JPA - это инструмент для работы, если инструмент недостаточно для задания, вам нужно найти лучший инструмент. Например, у меня был сценарий, когда мне пришлось скопировать весь граф объектов и сохранить новую копию этих объектов. Если я использовал ORM (как я и пытался это сделать), мне пришлось загрузить все объекты из БД, затем скопировать их, а затем сохранить новые объекты. Я слишком долго держался.
Лучшим решением было просто использовать операции на основе jdbc и «вставить через select» sql-вызовы для создания новых строк. Это было быстро, код был проще.
Другая вещь, которую следует учитывать, заключается в том, что вам комфортно с JDBC, и у вас есть крайние сроки, вам не нужно прыгать на победителя ORM. Классы Spring JdbcTemplate чрезвычайно эффективны и полезны. Иногда лучшим инструментом для работы является тот, который вы знаете. Вы должны ознакомиться с ORM, но не обязательно для проекта с высокими ожиданиями. Существует много возможностей для изучения, и его нетривиально - действительно, вы торгуете одним набором сложностей с другим в выборе использования jdbc vs orm.
Одним из дополнительных факторов, которые вы хотели бы рассмотреть, является стандартизация. –