現在、Tomcat、Spring 4、Spring Security、MySQL、およびJPA w / Hibernateを使用して取り組んでいるプロジェクトがあります。
私は、ORMプロバイダーの基盤となる実装をシームレスに、または少なくとも痛みを軽減するために、JPAを選択しました。これは、実装(JAX-RS)よりも仕様を精神的に使用しているということは、Java開発コミュニティのデフォルトの観点であると言えます。
これが本当にやりがいのある仕事であるかどうか興味があります。Hibernateを直接使用した場合、メインのJPA仕様の一部ではない機能を使用できるため、ある程度のパワーが得られると確信しています。
私の懸念の一部は、YAGNIのアイデアから来ています。私は本質的に特定のスタイルと方法でプログラミングしているため(Hibernateの代わりにJPAを使用)、将来のある時点でORM実装を交換できます。私は製品の寿命にわたってこれが起こることをひどく疑っているので、私は本質的に私はおそらく恩恵を決して享受しないものに努力しています。
あなたの考えは何ですか?JPAのようなものになると、「インターフェースへのプログラミング」は価値がありますか?実際に製品のORM実装全体を交換したことはありますか?とにかくJPAリークのようなものからの抽象化を完全に回避できたことがありますか?個人的には既にデータベーステーブルをクリーンアップするために単一のネイティブSQL呼び出しがあり、JPA仕様に組み込まれているもの(メソッドのプレフィックスの取得/設定、およびMEMBER OFの違い) / IN。これは、基礎となる実装に自分自身をバインドするだけで、回避する機会を与えてくれます。