【发布时间】:2012-08-01 01:20:51
【问题描述】:
请告知什么是 DTO 模式,因为我从我的分析中得出它是数据传输对象模式,您能否在 Hibernate 或任何其他 java 示例中提供任何有关它的示例,谢谢
【问题讨论】:
标签: java hibernate design-patterns
请告知什么是 DTO 模式,因为我从我的分析中得出它是数据传输对象模式,您能否在 Hibernate 或任何其他 java 示例中提供任何有关它的示例,谢谢
【问题讨论】:
标签: java hibernate design-patterns
DTO 是 EJB 2.1(统称为 Sun 蓝图目录)中可怕的持久性的解决方法之一。它用于从实体 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);
【讨论】: