-1

私の分析から得たDTOパターンとは、データ転送オブジェクトパターンであることをアドバイスしてください。Hibernateで特別に、または他のJavaの例で、その例を教えてください。ありがとう

4

1 に答える 1

3

DTO は、EJB 2.1 (まとめて Sun Blueprint Catalog として知られている) に見られるひどい永続性に対する回避策の 1 つです。エンティティ Bean からデータを抽出し、それをデータ層に渡すために使用されます。その層からのデータは DTO に配置され、エンティティ Bean に入れられます。これは、Bean 管理の永続性のみを対象としています。

これが、DTO の公式な意味でした。今日、これはバックエンドからフロントエンドへのデータ転送にも見られます (クライアント/サーバー アーキテクチャ)。

これを Hibernate で使用する場合は、必要な列を選択するためのクエリ/条件を作成AliasToBeanResultTransformerし、DTO でこれらの列を設定するために を使用します。Hibernate ドキュメントの例:

List resultWithAliasedBean = 
    s.createCriteria(Enrolment.class)
        .createAlias("student", "st")
        .createAlias("course", "co")
        .setProjection(
            Projections.projectionList()
                add( Projections.property("co.description"), "courseDescription" )
        )
        .setResultTransformer( new AliasToBeanResultTransformer(StudentDTO.class) )
    .list();

StudentDTO dto = (StudentDTO)resultWithAliasedBean.get(0);
于 2012-07-31T17:20:51.103 に答える