0

DAOインターフェースを使用しているときにSprings Hibernate Templateを使用しないサービスメソッドを作成する方法の例を見つけようとして、数時間グーグルで検索しました。また、私を混乱させているのは、 @Transactionalアノテーションを DAO ではなくサービス層に配置するとどうなるかということです。サービス メソッド/DAO インターフェイスは互換性がありますか?

@Transactionalが DAO にある例を次に示します。

これは、サービス層で@Transactionalを使用しているが、休止状態のテンプレートを使用しているものです

ご協力いただきありがとうございます!

4

1 に答える 1

2

Springのドキュメントでは、HibernateTemplate を完全に回避し、代わりに Hibernate API を直接使用することを推奨しています。

注: Hibernate 3.0.1 の時点では、トランザクション Hibernate アクセス コードもプレーンな Hibernate スタイルでコーディングできます。したがって、新しく開始されたプロジェクトの場合は、代わりに、SessionFactory.getCurrentSession() に基づいて、データ アクセス オブジェクトをコーディングする標準の Hibernate3 スタイルを採用することを検討してください。

また、@Transactionalアノテーションは常にサービス層のメソッドに付ける必要があります。これは、トランザクションを区別するレイヤーです。

http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/htmlsingle/spring-framework-reference.html#orm-session-factory-setupを読んで、セッション ファクトリのセットアップ方法を理解してください. 完了したら、セッション ファクトリを DAO に挿入できます。

@Repository
public class MyDAO {
    @Autowired
    private SessionFactory sessionFactory;

    ...
}
于 2012-04-13T14:49:21.663 に答える