hibernateのO/Rマッピング設定は、XMLファイルに記述する方法と、マッピングの対象にするクラスにアノテ―ションを付加する方法があります。XMLファイルをクラスごとに作成するのはめんどうなので私は後者の設定方法を使っていますが、「依存関係」という観点でみるとXMLファイルに記述する方が好ましいことかもしれません。
hibernateはPoEAAのData Mapperパターン適応しているフレームワークです。Data Mapperパターンの依存関係は以下のようになります。

今回は「ドメインクラス」がマッピングの対象になるクラス、マッパーがhibernateになります。
Data Mapperパターンを適用したメリットとして、マッピングするもの(マッパー)は両方に依存しても、マッピングされるもの(ドメインクラス、リレーショナルデータベース)は直接依存しないことがあります。そのため、ドメインクラスは本来の目的の「業務処理」だけを表現することが出来ます。
しかし、ドメインクラスにアノテ―ションを付加(つまりアノテ―ションをimport)した場合、依存関係は以下のように変化します。

ドメインクラスがマッパーに依存してしまい、Data Mapperパターンのメリットを打ち消してしまっています。
この依存を取り除くためにXMLファイルでマッピングの設定を行うと以下のように修正されます。

マッパーのみが依存を持っていてる状態に戻ります(XMLがドメインクラスからマッパーへの依存注入を行っている)。XMLで依存注入を行い、ソースコード上での依存はすべて取り除いた格好となりました。
hibernateはPoEAAのData Mapperパターン適応しているフレームワークです。Data Mapperパターンの依存関係は以下のようになります。
今回は「ドメインクラス」がマッピングの対象になるクラス、マッパーがhibernateになります。
Data Mapperパターンを適用したメリットとして、マッピングするもの(マッパー)は両方に依存しても、マッピングされるもの(ドメインクラス、リレーショナルデータベース)は直接依存しないことがあります。そのため、ドメインクラスは本来の目的の「業務処理」だけを表現することが出来ます。
しかし、ドメインクラスにアノテ―ションを付加(つまりアノテ―ションをimport)した場合、依存関係は以下のように変化します。
ドメインクラスがマッパーに依存してしまい、Data Mapperパターンのメリットを打ち消してしまっています。
この依存を取り除くためにXMLファイルでマッピングの設定を行うと以下のように修正されます。

マッパーのみが依存を持っていてる状態に戻ります(XMLがドメインクラスからマッパーへの依存注入を行っている)。XMLで依存注入を行い、ソースコード上での依存はすべて取り除いた格好となりました。