web-dev-qa-db-ja.com

HibernateとEclipseLink

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

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

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

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

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

この2つの実装を組み合わせることに問題はありますか? HibernateBean検証でHibernateJPAを使用する方が良いでしょうか?

13
jfcorugedo

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

この2つの実装を組み合わせることに問題はありますか?

これら2つの仕様の目的が異なるため、JSR-303検証仕様のEclipseLink実装とHibernate実装を一緒に使用しても問題はないと思います。

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

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

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

10
Debojit Saikia