在java中将实体转换为dto

时间:2018-04-04 13:31:32

标签: java hibernate spring-mvc

将实体转换为dto需要花费大量时间。 因为实体有很多关系。所以子表数据被分配给dto属性。 有没有最好的方法来做到这一点.. 我也经历过模型映射器..但是模型映射器将直接实体映射到dto属性。它不能将子表数据映射到dto。

1 个答案:

答案 0 :(得分:1)

  

但是模型映射器将实体映射到dto属性。它不能将子表数据映射到dto。

您可以使用ModelMapper。它也映射了孩子。

每个例子,这都有效:

GrandchildEntity grandchildEntity = new GrandchildEntity(13);
ChildEntity childEntity = new ChildEntity("Child Name", grandchildEntity);
ParentEntity parentEntity = new ParentEntity("Parent Name", "Parent Address", childEntity);

ParentDto parentDto = new ModelMapper().map(parentEntity, ParentDto.class);

ParentDtoChildDtoChildDto拥有GrandchildDto,所有这些都具有相同的实体字段名称。在调用map方法后,所有字段都在Dtos上正确填充。

您可以将ModelMapper配置为使用反射,但默认情况下,您需要一个空构造函数和Dto上每个字段的set方法。在实体中,每个字段都需要get方法。