java属性映射使用MapStruct的坑

news2024/11/16 7:32:46

目录

1.实体类和映射类只加注解@Data

2.将@Data换成getter和setter后build

3.那么此时我把getter和setter换成lombok的getter和setter


1.实体类和映射类只加注解@Data

 

映射关系类

 

这个时候运行

 提示源参数中不存在

注意这个文件夹

 

2.将@Data换成getter和setter后build

package com.zsp.quartz.entity;


public class Qa  {
    private String myName;
    private String userAge;

    public Qa() {
    }

    public Qa(String myName, String userAge) {
        this.myName = myName;
        this.userAge = userAge;
    }

    public String getMyName() {
        return myName;
    }

    public void setMyName(String myName) {
        this.myName = myName;
    }

    public String getUserAge() {
        return userAge;
    }

    public void setUserAge(String userAge) {
        this.userAge = userAge;
    }
}
package com.zsp.quartz.entity;


public class QaDto {
    private String nameVo;
    private String userAge;

    @Override
    public String toString() {
        return "QaDto{" +
                "nameVo='" + nameVo + '\'' +
                ", userAge='" + userAge + '\'' +
                '}';
    }

    public String getNameVo() {
        return nameVo;
    }

    public void setNameVo(String nameVo) {
        this.nameVo = nameVo;
    }

    public String getUserAge() {
        return userAge;
    }

    public void setUserAge(String userAge) {
        this.userAge = userAge;
    }

    public QaDto() {
    }

    public QaDto(String nameVo, String userAge) {
        this.nameVo = nameVo;
        this.userAge = userAge;
    }
}

此时文件夹生成了UserMapStructImpl

 进入之后带代码如下,重写了我映射关系类的接口,并对属性进行赋值,采用的是getter,setter方法。

package com.zsp.quartz.entity;

import javax.annotation.Generated;
import org.springframework.stereotype.Component;

@Generated(
    value = "org.mapstruct.ap.MappingProcessor",
    date = "2023-08-23T10:13:53+0800",
    comments = "version: 1.2.0.Final, compiler: javac, environment: Java 1.8.0_321 (Oracle Corporation)"
)
@Component
public class UserMapStructImpl implements UserMapStruct {

    @Override
    public QaDto toDto(Qa qa) {
        if ( qa == null ) {
            return null;
        }

        QaDto qaDto = new QaDto();

        qaDto.setUserAge( qa.getUserAge() );
        qaDto.setNameVo( qa.getMyName() );

        return qaDto;
    }
}

此时我再运行

 运行成功

我把target文件夹删掉后重新运行测试代码,发现又生成了这个Impl文件。

3.那么此时我把getter和setter换成lombok的getter和setter

 将target也先删掉

 重新运行测试类

 运行报错

看一下target文件夹

并没有那个实现类Impl

暂时找不到问题出在哪里,为了不报错还是老老实实的getter和setter吧。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python如何进行基本的数学运算

Python进行基本的数学运算 Python是一门功能强大且易于学习的编程语言,它不仅可以用于开发应用程序,还可以用于执行各种数学运算。让我们一起来看看如何在Python中进行基本的数学运算。 加法、减法、乘法和除法 Python支持常见的加法、减法、乘法和除…

[论文分享]Pedestrian attribute recognition based on attribute correlation

Pedestrian attribute recognition based on attribute correlation 行人属性识别广泛应用于行人跟踪和行人重识别。 两项最基本的挑战: 多标签性质数据样本的差异性特征,例如类别不平衡和部分遮挡。 不同方法的示意图: 此项工作中&#…

Linux操作系统--常用指令(用户管理操作类)

用户的管理需要使用超级管理员(root)来进行操作 (1).useradd添加新用户 功能:给当前的操作系统添加新的用户 语法: useradd 用户名 (2).passwd设置用户新密码 功能:给当前的用户设置密码 语法: passwd用户名 (3).i

核辐射对生物的影响

目录 1.什么是核辐射 2.核辐射的危害 3.核辐射对环境造成的影响 4.核辐射的影响会持续多长时间 1.什么是核辐射 核辐射是指自然界或人工产生的高能粒子或电磁波的放射性能量。当原子核不稳定时,会发生放射性衰变,释放出核辐射。 核辐射主要分为三种类…

市场的新宠:4G智能手表

现在人们提到智能手表,健康监测、运动记录、接打电话等定是他不可或缺的功能,而其中通讯功能在绝大数多的智能手表上都是通过蓝牙实现的,需要让手表通过蓝牙连接到手机端来进行。在没有手机的情况下,配置再高的蓝牙智能手表也是“…

深入浅出AXI协议(2)——通道及信号

一、前言 在之前的文章中,我们主要介绍了什么是AXI协议,AXI协议的特点与优点,然后对于AXI协议非常重要的五通道结构进行了介绍,了解了5个通道各自的作用。本文我们继续AXI协议的学习,我们将讨论5个通道的具体内容和相对…

判断网站是否开启CDN加速

方法一: 我们可以在CMD中ping一下想要测试的网站。比如baidu.com。 我们看到转向的还是baidu.com 接着用命令nslookup尝试下反向解析: 这种情况下一般是没有做CDN加速。 假设我们ping www.csdn.com: 我们看到它跳转到xxxx.com去了,这说明c…

Spring AOP 的实现及原理

目录 什么是 Spring AOP ?AOP 是啥 ?Spring AOP 可以干啥 ? AOP 的组成Spring AOP 的实现Spring AOP 的实现原理 什么是 Spring AOP ? AOP 是啥 ? 我们知道 OOP 是面向对象编程, 那 AOP 又是啥呢 ? AOP(Aspect Oriented Prog…

fastadmin后台表格新增tab选项卡不生效问题

官方一张图解析表格列表功能文档&#xff1a;(一张图解析FastAdmin中的表格列表的功能 - FastAdmin问答社区) 会遇到后期手动添加tab栏的情况 首先&#xff0c;需要在控制器对应的index.html页面中需要增加你想要筛选的字段 <div class"panel-heading">{:bui…

基于神经网络的3D地质模型

地球科学家需要对地质环境进行最佳估计才能进行模拟或评估。 除了地质背景之外&#xff0c;建立地质模型还需要一整套数学方法&#xff0c;如贝叶斯网络、协同克里金法、支持向量机、神经网络、随机模型&#xff0c;以在钻井日志或地球物理信息确实稀缺或不确定时定义哪些可能是…

leetcode 583. 两个字符串的删除操作

2023.8.26 本题看似很绕&#xff0c;其实就是 最长公共子序列 的变式。 求出最长公共子序列之后&#xff0c;再用两单词的总长度减去他们的最长公共子序列即可。 代码如下&#xff1a; class Solution { public:int minDistance(string word1, string word2) {vector<vec…

Java——单例设计模式

什么是设计模式&#xff1f; 设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式免去我们自己再思考和摸索。就像是经典的棋谱&#xff0c;不同的棋局&#xff0c;我们用不同的棋谱、“套路”。 经典的设计模式共有23种。…

时序分解 | MATLAB实现基于SVD奇异值分解的信号分解分量可视化

时序分解 | MATLAB实现基于SVD奇异值分解的信号分解分量可视化 目录 时序分解 | MATLAB实现基于SVD奇异值分解的信号分解分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 SVD分解重构算法&#xff0c;MATLAB程序&#xff0c;奇异值分解 (Singular Value Decompo…

响应式web-PC端web与移动端web(H5)兼容适配 选型方案

背景 项目需要&#xff0c;公司已经有一套PC端web&#xff0c;需要做一套手机端浏览器可用的&#xff0c;但是又想兼容pc端&#xff0c;适配的web项目。 以下是查阅到响应布局现成的开源模版。根据自己技术栈&#xff0c;vue2,js来搜索相关的开源项目。 RuoYi 使用若依快速…

【C++进阶(一)】STL大法以及string的使用

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习C   &#x1f51d;&#x1f51d; STL标准库 1. 前言2. STL库的版本以及缺陷3. ST…

骨传导耳机和普通耳机哪个危害大?一文读懂骨传导耳机!

作为一个5年重度运动爱好者&#xff0c;常年跑步、爬山、骑行&#xff0c;入手过的各类耳机超30款&#xff0c;用真实体验告诉大家&#xff0c;骨传导耳机和普通耳机哪个危害大&#xff01; 首先大家要知道的是&#xff0c;不管什么类型的耳机&#xff0c;如说说音量过大&…

origin导出pdf曲线超出边框

软件版本 软件版本Word2021Origin2021Adobe Acrobat Pro2023 问题描述 Origin导出的emf格式矢量图片&#xff0c;插入到Word中&#xff0c;显示正常&#xff0c;但是在使用Word导出→创建Adobe PDF→创建Adobe PDF导出PDF文件后&#xff0c;图片曲线就会超出边框&#xff0c…

MySQL—MySQL的NULL值是怎么存放的

一、引言 1、MySQL数据存放在哪个文件&#xff1f; 创建一个数据库会产生三种格式的文件&#xff0c;分别是.opt格式、.frm格式、.ibd格式。 opt格式&#xff1a;用来存储当前数据库的默认字符集和字符校验规则。 frm格式&#xff1a;该文件是用来保存每个表的元数据信息的&…

骨传导耳机哪个牌子好?这几款热门骨传导耳机款式不要错过

我是一名耳机的重度使用者&#xff0c;每天上下班的路上都会使用耳机来听音乐&#xff0c;以前使用有线耳机多一些&#xff0c;后来无线耳机出现&#xff0c;我就开始使用无线耳机。无线耳机有很多种&#xff0c;挂颈式、真无线、骨传导、气传导等各种耳机都有用过&#xff0c;…