当前位置: 首页 > 知识库问答 >
问题:

ModelMapper-DTO到不可变

归明诚
2023-03-14

我正在将Dto映射到域对象。域是不可变的,因此没有arg构造函数,ModelMapper对此表示不满。

是否有其他方法可以让ModelMapper通过构造函数而不是setter来构造对象?

我的Dto有6个成员变量,但我的域少了2个(相同的名称和类型),所以我猜构造函数的创建可能并不简单。

共有2个答案

单淳
2023-03-14

尝试使用ModelMapper转换器

通过这种方式,您可以控制在给定源对象的情况下如何创建目标对象。

夏侯彬郁
2023-03-14

本例将ModelMapper配置为允许匹配私有字段,因此不需要setter或getter或构造函数来映射对象:

ModelMapper modelMapper = new ModelMapper();
modelMapper.getConfiguration()
           .setFieldMatchingEnabled(true)
           .setFieldAccessLevel(AccessLevel.PRIVATE);

来源:中的配置示例http://modelmapper.org/user-manual/configuration/

 类似资料:
  • 问题内容: 我正在使用Spring MVC框架编写简单的博客Web应用程序。我愿意为我的应用添加图层。 我决定使用ModelMapper框架从对象转换为视图中使用的对象。 我只有一个问题。在我的主页上,我正在显示博客中的帖子列表。在我看来,这只是(实体)对象的列表。我想更改它以将对象列表传递给我的视图。有没有什么办法来映射的对象的单方法调用的对象?我当时在考虑编写将对此进行转换的转换器,但是我不确

  • 尝试将实体转换为dto时,使用modelmapper时出错。 我的java类是: 用户类: Rol等级: 用户到类: 当我尝试映射用户时。类到UserDTO。当modelmapper出现下一个错误时初始化: 此外,我尝试使用此modelmapper配置: 错误: 如果RolDTO类是外部化的,模型映射器工作正常。我希望你能帮助我解决这个问题。 谢谢。

  • 问题内容: 我们将使用DTO在表示层之间来回发送数据。我们有像这样的图层: facade appService domain 并且我们使用推土机来帮助我们将实体转换为dto。但是我现在有两个问题: 从实体到dto,我们可以使用推土机,但是从dto到实体,我们可以使用推土机吗?如果是,如何? 我应该在哪里创建实体?在外观或DTOAssembler中? 例如,我必须注册一本书。这本书的实体外观如下:

  • 编辑:更新到版本没有帮助!

  • 我正在尝试将实体转换为DTO,DTO用于Rest服务。 我的实体如下: 以及相关的DTO: 我使用ModelMapper以便将我的实体转换为DTO,反之亦然。但是,当我向Rest API发送请求时,会出现以下错误: 最初,实体中的读取类型是LAZY,我把它改成了EAGER,它可以工作。但是我已经读到这对项目的表现不利。我已经尝试了OpenSessionInViewFilter在Web应用程序初始化

  • ModelMapper,Java Object Mapping 工具,类似BeanUtils,效率略低于Orika,但是内部策略丰富,配置方式更舒适。