2013-10-06 4 views
12

私は新しいWebプロジェクトを開始しており、JPAを永続性ORMエンジンとして選択しました。HibernateとEclipseLink

私は最後のプロジェクトでOpenJPAを使用しましたが、今はEclipseLinkを使いたいと思います。

なぜですか?これはJPAリファレンスの実装であり、Eclipse IDEには多くのドキュメントと非常に優れたサポートがあります。また、いずれもベストではないと宣言しているベンチマークは見つからないため、パフォーマンスは重要な要素ではありません(すべての実装に独自の強みがあります)。

しかし、私はJSR-303検証仕様を使用したいと思います。私はhibernate-validatorを選択しました(魔法使いはBean検証仕様のリファレンス実装です)。

また、Springを使用していますが、Spring + Hibernateには多くの例がありますが、SpringがHibernateの方が優れているとの意見はありませんでした。

この2つの実装を混在させると問題はありますか? Hibernate JPAとHibernate Bean検証を併用する方が良いでしょうか?

+2

私はSpringとの組み合わせでそれを試したことはありませんでしたが、Hibernate Beanの検証とEclipseLinkはGlassfishで使用されています....使い勝手が証明されています。遅延ロードのために拡張オープンセッションを自動的にサポートしているので、* EclipseLinkからHibernateを優先しています。 – cljk

+0

すべてのJPA 2実装(準拠している場合)では、ANY Bean検証実装を使用できます。何かが "リファレンス実装"である場合、JPA仕様が実装可能であることを証明する方法として使用されたことを意味します。 – DataNucleus

+0

[JPAのためのHibernateまたはEclipseLinkの重複の可能性はありますか?](http://stackoverflow.com/questions/3234829/hibernate-or-eclipselink-for-jpa) – Dinei

答えて

9

私はSpringでJPAとHibernate-validation-4.2.0.Finalの実装をEclipseLink使用しています。これまでのところ問題はありません。今質問にお答えします:

この2つの実装を混在させても問題はありませんか?

私は、これら2つの仕様を目的として、一緒にJSR-303の検証仕様のためHibernate実装とEclipseLink JPA実装を使用して任意の問題があるだろうとは思わない異なります

  • JSR 303 - Bean検証 - エンティティ検証のためのメタデータモデルとAPIを定義します。これは、特定のアプリケーション層またはプログラミングモデルに関連していません。
  • JPA - これは、Java EEおよびJava SEを使用した永続性およびオブジェクト/リレーショナルマッピングの管理用のJava APIの仕様です。

Springは、JSR-303 Bean検証APIを完全にサポートしています。クラスパスに存在するHibernate ValidatorなどのJSR-303プロバイダが必要で、自動的に検出されます。

org.springframework.orm.jpaパッケージで入手可能なSpring JPAは、Hibernateとの統合と同様の方法でJava Persistence APIの包括的なサポートを提供します。

関連する問題