web-dev-qa-db-ja.com

HibernateアノテーションまたはXML構成

Hibernate で新しいプロジェクトを開始しました。 Hibernateアノテーションはより良い選択ですか、それともHibernate XMLマッピングはより良いですか?

XML構成でHibernateを使用しましたが、注釈についてはわかりません。

  1. アノテーションベースの実装に行く際に問題はありますか?
  2. アプリケーションのメンテナンスは、アノテーションベースで簡単ですか、それとも複雑ですか?
  3. どちらが優れているか(つまり、注釈またはXMLマッピング)、どちらが広く使用されていますか?どうして?
  4. 別のレベル、つまり本番レベル、統合レベル、または開発レベルで別のデータベースを使用する場合、コードを変更する必要がありますか?

注:2つのテクノロジーを比較しているわけではありませんが、最新のテクノロジーを使用するアプリケーションでどちらを使用するか(つまり、2つの方法のうち)を知りたいのです。

25
TechFind

アノテーションは、アプリケーションにXMLファイルがないようにするため、新しいアプリケーションに適しています。また、コードが少なく、メンテナンスも簡単です。また、アプリケーションをリファクタリングするのにも役立ちます(Eclipse/NetBeansなどのIDE)を使用)。これは、手動で変更する必要があるため、XMLの問題です。

回答:

  1. 問題ありません。最新の JSR 3 API(Javaの依存性注入)を使用できます。これは、JSFマネージドBeanの同じアノテーションに役立ちます(@Namedの代わりに@managedbeanを使用してください) 、 SpringIoC レイヤーとHibernateであるため、レイヤー全体で、フレームワーク固有ではなく単一のアノテーションコンセプトを使用できます。

  2. メンテナンスは簡単で、特にコードのリファクタリング、XMLファイルの数が少ないかまったくない、新しい学習が可能です。 HibernateでJPAベースのアノテーションを使用します。あなたはグーグルでいくつかのサンプルを見つけることができます。

  3. XMLベースは最初から存在していたため、広く使用されていますが、新しいアプリケーションの場合は、より成熟したアノテーションの方が優れています。

  4. データベースを変更する場合、コードはアノテーションまたはXMLで同じままであり、プロパティファイルの値を変更する必要があるだけです。

25
bekur

アノテーションはより新しく、JPAアプリケーションの標準的な方法です。

XMLよりも使いやすいと思いますが、それは好みと経験の問題です。それらを使用すると、

  • 新しいことを学ぶ
  • jPAベースのプロジェクトを開始する準備ができています(別の実装を使用できます)

注釈によって私が望むことを実行できなかったため、XMLが必要な状況にあったことはありません。

9
JB Nizet

注釈を付ける前は、それを行う方法はXMLだけでした。アノテーションを使用すると、すべてが1か所にまとめられるため、アノテーションの理解と保守が容易になります。

1
Dainius