8

数日前にHibernateを使い始めたとき、私はただ疑問に思っていました。プロジェクトを最初から始めているとしましょう。データベーススキーマを生成するために、アノテーションベースのマッピングまたはHibernateマッピングファイルを使用しますか?

Hibernateマッピングファイルは、注釈では(少なくとも、完全に同等ではない)見つけられないいくつかの機能を提供することを理解しています。しかし、それでも、今日、Hibernateを使用するプロジェクトは、Hibernateマッピングファイルよりもアノテーションベースを採用したいと思っています。

誰かが注釈よりもマッピングファイルを選択したことがありますか?もしそうなら、どのような理由で?

4

3 に答える 3

12

@Annotationsを使用することでどのような利点がありますか:

  • コンパイラセーフ
  • @Entityに基づいて、エンティティと非エンティティを簡単に区別できます
  • packagesToScanSpringの機能を使用すると簡単にスキャンできます
  • パッケージからパッケージへのエンティティの移動やクラスの名前変更は簡単です

XMLを使用することで私が見る利点:

  • 不要なベンダー固有のアノテーションが付いたJavaクラスを散らかすことはありません(JPA、JAXB、SOLRJアノテーションが付いたJavaモデルクラスを想像してください)
  • 一箇所での構成
  • 全体としてメンテナンスが容易

注釈を使用しますが、オプションとしてXMLを保持します。

于 2012-04-17T13:09:40.127 に答える
4

いつでも注釈を付けてください。本当に使いすぎてクラス内にメタデータを保存するXML構成は、実行可能なオプションとして適しています。

アノテーションは、関係をより適切にマッピングするのに役立ち、Hibernateは主にJPAアノテーションを使用するため、JPA標準に合わせることができます。注釈を使用しても実際の問題はなく、トレードオフもあまりありません。XMLベースの構成よりも優れた利点があります。アノテーションを使用するときに欠落しているハックはほとんどないかもしれませんが、それらはうまくいきます。

ここで説明するように、XMLベースのマッピングを持つレガシープロジェクトの新しいクラスにアノテーションを使用することも可能です

于 2012-04-17T13:07:56.877 に答える
0

xmlでのマッピングは、アノテーションベースの場合ほど輝かしいものではありません。したがって、注釈の使用は、少なくともマッピングに関してはより洗練されています。

于 2021-10-29T19:52:31.803 に答える