JPAは単独で使ってもあんまり便利じゃない

JPAマッピングフレームワークなので、SQLを書かなくする仕組みではなくて、SQLの結果をオブジェクトにマッピングしたり、オブジェクトをSQLに乗せることを自動化してくれる仕組みです。
なので、JPA使ってもSQL書かなくなるわけではありません。JOINを書かなくはなりますけど。JPAの場合JPQLだけども、まあほぼSQLですわ。
HibernateのCriteriaも条件の数が可変とかだと便利ですけど、固定の条件ならHQLにパラメータ埋め込んだほうが楽な気がします。


なので、実のところ手書きでコード書く分には、JPAとResultSet+αとで、すでに使った実績とかを考えると手に馴染んだものを使った方がいいかもしれません。


JPAの一番の魅力は、データベースのデータを扱うコンポーネントやライブラリを作る側が、RecordSetとか意識せず、より一般的なList/Collectionでコードを書けるところだと思います。そうやって、RDBMSからJavaの世界への入り口を用意するのがJPAの役割です。
だから、本当に便利になるのは、Beans Binding(jsr-295)とかJBoss Seam/Web Beans(jsr-299)とか、さらにはNetBeansや他のIDEがそれらに対応するなど、JPAありきの周辺技術が整ってきて、RDBMSと画面とのマッピングまでができるようになったときだと思います。