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