2012-03-20 5 views
1

私はHibernate 4をちょうど開始しています。エンティティを定義する2つの方法であることに気付いています。 xmlファイルhbmを定義し、それをBeanにマップするか、Beanを定義して(@Entity、@column ..などのように)DB内のテーブルとのマッピングにアノテーションを使用するだけです。Hibernate 4でのエンティティの定義

私の質問は、両方の方法の違いは何ですか? あなたが(申し訳ありませんが、質問は単純ですが、私はオンライン私の答えを見つけることができなかった場合..あなたはかなりしっかりHibernateフレームワークにモデル(エンティティ)を結合しているアノテーションを使用するヘルプ

答えて

3

ため

感謝それらの間の結合を導入している)。一方で、XMLとJavaソースファイルを切り替える必要がないため、ソースコードがはるかに読みやすくなります。

元々、HibernateはXMLマッピングとアノテーションだけが(Java 5で導入された後で)追加されました。ほとんどのJava開発者は、クラスがHibernateエンティティを表していること、どのような制約があるのか​​、そしてアプリケーション内の他のエンティティとどのように関係しているのかを実際に明らかにしているため、一方、XML定義を使用すると、ソースがHibernateから切り離され、Javaソースを変更せずに別のライブラリに簡単に切り替えることができます。あなたはJava Persistence APIを使うとずっとうまくやることができますが、それは移植性のある注釈です。これは、任意のORMフレームワーク(Hibernate、ibatis、EclipseLinkなど)に委譲できる統一されたORM APIを使用する機能を提供します。 JPAの構成の行を変更し、プロジェクトのクラスパスに新しいORMを追加することで、フレームワークを簡単に切り替えることができます。実際、Hibernateは、JPAとの組み合わせで一般的に使用される(独自の機能のいくつかが必要な場合を除いて)、ごく少数の企業が直接使用します。非常に少数の人々もXMLエンティティ定義を使用しています - 私はしばらくのうちにそれらのプロジェクトに取り組んでいません。

1

最も大きな違いは、Hibernateに近づく方法です。注釈とそれ以外の場合に比べてXML構成を好む人もいます。

XML設定を使用すると、Hibernateをより詳細に制御でき、設定ファイルを1か所に保存できます。

一方、JPAアノテーションを使用すると、より直感的な永続性の設定が可能になりますが、ビジネスロジックにはベンダーのロックがなくなります。

this threadもチェックしてください。

関連する問題