关于DTO模式实现

时间:2012-07-31 17:12:10

标签: java hibernate design-patterns

请告知我的DTO模式是什么,因为我来自我的分析是它是数据传输对象模式,你能否在Hibernate特别或任何其他java示例中建议它的任何一个例子,谢谢

1 个答案:

答案 0 :(得分:2)

DTO是EJB 2.1(统称为Sun Blueprint Catalog)中可怕持久性的解决方法之一。它用于从实体bean中提取数据并将其传递给数据层。来自该层的数据放在DTO中并放入实体bean中。这仅适用于bean管理的持久性。

这正是DTO的正式含义。今天,您还可以将数据从后端传输到前端(在客户端 - 服务器架构中)。

如果要在Hibernate中使用它,请创建用于选择所需列的查询/条件,然后使用AliasToBeanResultTransformer在DTO中设置这些列。 An example in the Hibernate documentation

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);