MapStruct入门使用

news/2025/1/24 11:28:47/文章来源:https://www.cnblogs.com/cyqf/p/18689306

MapStruct入门使用案例

以下是常用的使用举例,按照需求改动即可

@Data
public class UserDO{private int age;private String name;private Role role;private String date;
}@Data
public class UserDTO{private int dtoAge;private String dtoName;private Guest guest;private Date date;
}
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;@Mapper
public interface UserConvert{UserConvert INSTANCE = Mappers.getMapper(UserConvert.class);//方式1 返回值的方式UserDO  DTOConvertDO(UserDTO dto);//方式2 参数加注解的方式void DTOConvertDO(UserDTO dto,@MappingTarget UserDO user)//自动忽略源对象为空的值@BeanMapping(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE)UserDO  DTOConvertDO(UserDTO dto);//resultType 指定返回目标类型,ignoreByDefault = true:在目标类型CarDto中忽略所有未映射的属性。//mappingControl = MappingControl.FILTER:如果存在未匹配的属性,过滤它们而不报告错误或警@BeanMapping(resultType = UserDO.class,ignoreByDefault = true, mappingControl = MappingControl.FILTER)    	  UserDO  DTOConvertDO(UserDTO dto);//非同名属性之间映射,指定dto的dtoName映射到Do中的name中@Mapping(source = "dtoName",target = "name")//条件映射,大于18岁进行映射赋值    @Mapping(condition = "java(dto.getDtoAge() >= 18)", target = "age")//忽略指定值映射    @Mapping(source="guest",ignore=true)    void DTOConvertDO(UserDTO dto,@MappingTarget UserDO user)//非同名属性之间映射,包含其下的二层对象属性的赋值。dateFotmat指定时间格式@Mappings({@Mapping(source = "dtoName",target = "name"),@Mapping(source = "dtoAge",target = "age")@Mapping(source = "guest.name",target = "role.name")@Mapping(source = "date",target = "date",dateFotmat="yyyy-MM-dd")})void DTOConvertDO(UserDTO dto,@MappingTarget UserDO user)// 当为 null 时不赋值,可以一个个设置@Mapping(target = "dtoName", source = "name", defaultExpression = "java(null)")void DTOConvertDO(UserDTO dto,@MappingTarget UserDO user) //集合映射@MapMapping(valueDateFormat="yyyy-MM-dd")void DTOConvertDO(Map<String,Date> dto,@MappingTarget Map<String,String> map)      
}

注解作用:

@BeanMapping(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE) : 忽略为null值的映射赋值

@MappingTarget : 指定赋值目标对象,赋值到哪去。

@Mapping(source = "dtoName",target = "name") : 指定映射关系,不同名的属性赋值,UserDTO下的dtoName赋值到UserDO下的name

@Mappings({
@Mapping(source = "dtoName",target = "name"),
@Mapping(source = "dtoAge",target = "age")
}) : 指定映射关系,多个时。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/874669.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

补充篇:Unity中Compute Shader的基本使用

补充篇:Unity中Compute Shader的基本使用 Compute Shader 可以充分利用GPU来帮助我们处理大规模的并行任务。虽然名字带Shader,但它可不光用于图形学,所以即便对渲染相关的知识不甚了解,也不妨碍学习它的用法。 基本流程 对任意 Project的文件夹右键Create/Shader/Compute …

修改网站首页大图通常涉及到更新网站首页的图片文件

找到图片文件:首先需要找到网站首页大图的图片文件所在的位置。通常,网站的图片文件会存储在服务器的特定目录中,例如 images 目录。 备份原图片:在修改之前,建议先备份原图片,以防修改过程中出现问题需要恢复。 准备新图片:准备好要替换的新图片,确保新图片的尺寸和格…

怎样修改网站公司名称

修改网站公司名称通常涉及到更新网站的标题、版权信息、联系方式等相关内容。以下是一些常见的方法:网站标题修改:在网站的HTML代码中,找到 <title> 标签,并将其中的公司名称修改为新的名称。例如: <title>新公司名称 - 网站首页</title>版权信息修改:…

改图标网站设计图排版

修改图标网站设计图排版可以从以下几个方面入手:确定排版风格:根据网站的整体风格和定位,确定图标的排版风格,如对齐方式、间距、大小比例等。 调整图标位置:使用设计工具(如Adobe Photoshop、Sketch等)打开设计图,将图标拖动到合适的位置,确保布局合理、美观。 统一图…

ESP32-WebOTA

esp32网页ota设计参考前言 在 ESP32 设备连接上 WiFi 后均获获得 WiFi 设备分配的一个 IP 地址,在同一网络的设备当中即可访问此 IP 地址,而我们既可以通过 ESP32 中的 HTML 服务访问建立在上面的网页,并且可以通过网页来实现对于 ESP32 的交互。 接下来主要介绍如何通过网页…

如何修改织梦网站的颜色?

要修改织梦网站的颜色,您可以通过以下几种方式实现:使用CSS样式:在织梦网站的CSS文件中,找到控制网站颜色的部分,并进行相应的修改。通常,这些样式位于网站的主题或模板目录下的CSS文件中。您可以使用文本编辑器(如Notepad++、Sublime Text等)打开CSS文件,并查找和修改…

如何修改网站数据库密码?

修改网站数据库密码是一项重要的安全措施,可以帮助保护您的网站数据。以下是一些基本的步骤:登录到数据库管理工具:使用数据库管理工具(如phpMyAdmin、MySQL Workbench等)登录到您的网站数据库。您需要知道数据库的主机名、用户名、密码和数据库名称。 选择要修改密码的用…

学习vue05补发一下昨天学习内容

学习了vue知识,关于vue工程的运行方式和程序,并学会了组合式和分组式API,主要是在其中不断查资料的学习关于vue运行,比如钩子函数,应用实例等等

WordPress移除页面源码head中style img:is的样式代码

上月中旬 WordPress 6.7 版本正式发布,随后很快又发布了 WordPress 6.7.1 维护版本,每次 WordPress 有大版本的更新子凡我都习惯先看看官方的更新记录,然后先升级泪雪博客看看有没有问题,最后再批量的升级其他项目的 WordPress 网站,然后就是还会习惯的看看前段代码是否存…

帝国cms网站名称修改不成功怎么办

如果您在帝国cms中修改网站名称不成功,可以尝试以下步骤:检查权限:确保您有足够的权限修改网站名称。通常,只有管理员或具有相应权限的用户才能进行此类修改。 清除缓存:修改网站名称后,可能需要清除缓存才能使更改生效。您可以在帝国cms后台找到“数据更新”或“缓存管理…

网站顶部logo在哪里修改

网站顶部logo的修改位置通常取决于您使用的网站建设工具或平台。以下是一些常见的修改方法:内容管理系统(CMS):如果您使用的是CMS,如WordPress、Drupal或Joomla,通常可以在后台管理界面中找到“外观”或“模板”选项,然后在其中找到“自定义”或“主题设置”等相关选项,…

网站PHP版本如何修改

网站的PHP版本是指网站所使用的PHP解释器的版本。修改网站的PHP版本可以通过以下步骤实现:确定服务器类型:首先需要确定网站所在的服务器类型,如Apache、Nginx等。不同的服务器类型有不同的PHP版本管理方式。 找到PHP版本管理工具:根据服务器类型,找到相应的PHP版本管理工…