1

Hibernate DAOを作成する新しい方法は、Hibernateコンテキストセッションを使用することであることを読みました。HibernateTemplate/HiberateDaoSupport主な理由は、SpringベースのDAO、つまりSpring-FreeDAOを回避することです。

例外翻訳をどうするかを検索したとき?私が使うべきところはどこにでも書かれています@Repository@Repositoryインポートする必要があり、コードに依存関係を作成します。私は正しいですか?

アノテーションは依存関係とは見なされませんか?もしそうなら、とにかく私はXMLを使用してそれを持つことができますか?HibernateDaoSupportまたは、とにかくコードをSpringと結合するので、古い方法を使用する必要がありますか?

アップデート

同様の質問が見つかりました:「daoでSpringに依存せずにHibernateをSpringと統合する」しかし:

  • @papが示した回答の最初の段落では、@Repositoryの明確なXML代替案を指定していません。
  • その回答の残りの部分で提供される洞察はもっともらしいですがデカップリングがそれほど問題ではない場合、SpringがHibernate DAOへの新しいアプローチを提案しようとしたのはなぜですか?

PSこれは批判ではありません。これは、このトピック(つまり依存関係)についての適切な考え方を学ぶための試みです。

4

1 に答える 1

1

そもそも Spring 例外変換のポイントは、Spring への依存関係を作成して Hibernate への依存関係を断ち切ることです。アノテーションに関係なく、Spring 例外変換は Hibernate 例外をキャッチし、それを Spring 例外に変換します。Spring 例外に関連付けられたコードに catch ステートメントを挿入することで、@Repository アノテーションを追加するよりもはるかに直接的にコードを Spring に結合できます。Spring に依存したくない場合は、単純に Hibernate 例外を直接使用してください。基本的に、次の 2 つのアプローチがあります。

  1. 例外とコンテキスト セッションには Hibernate を使用します (Spring への結合なし)。この場合、Spring 例外変換をまったく使用しないでください。
  2. 例外とセッション処理には Spring を使用します (Hibernate への疎結合、Spring への追加結合)。
于 2013-02-11T15:07:59.070 に答える