Особо доставляет возможность использования динамически сгенерированных методов типа findByFirstnameStartingWith, findByStartDateBefore и т.д., для которых не нужна реализация. docs.spring.io/spring-data/jpa/docs/current/refere...
1. очень тяжелый. 2. зачастую очень криво строит запросы . Мне по сути от орма нужно чтобы не писать каждый раз insert'ы и не писать каждый раз obj.setField(ps.getString(++index));
Лучше отказаться от orm-а. Конечно он ускоряет процесс разработки, но исключительно в прототипах. На продакшене будет сложнее маштабироваться, шардиться.