请告知我的DTO模式是什么,因为我来自我的分析是它是数据传输对象模式,你能否在Hibernate特别或任何其他java示例中建议它的任何一个例子,谢谢
答案 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);