使用 mapstruct 将 null 设置为 target

2023-11-24

我正在使用 mapstruct,我想知道是否有任何方法可以为某些目标属性设置 null 值。例如,

public class MySource {
    private String prop1;
    private String prop2;

    public MySource() {
        // Initialization.
    }

    // Getters - Setters.
}

public class MySourceDto {
    private String prop1;
    private String prop2;

    public MySourceDto() {
        // Initialization.
    }

    // Getters - Setters.
}

@Mapper
public interface MySourceMapper {

    @Mappings({
        @Mapping(target = "prop1", propertyToSetNull = null)})
    public MySourceDto toView(MySource mySource);

}

我希望使用上面的源代码、dto 和映射器来生成下面的源代码,

@Component
public class MySourceMapperImpl implements MySourceMapper {

    @Override
    public MySourceDto toView(MySource mySource) {
        if ( mySource == null ) {
            return null;
        }

        MySourceDto mySourceDto = new MySourceDto();

        mySourceDto.setProp1( mySource.getId() );
        mySourceDto.setProp2( null );

        return mySourceDto;
    }
}

您可以使用@Mapping(target = "prop1", expression = "java(null)")为了实现这一点。

您可以在参考指南中找到有关表达的更多信息here.

目前仅支持 java 作为表达式语言,MapStruct 只会将您在括号内编写的内容直接应用于 setter,实现将与您的示例中的完全相同。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 mapstruct 将 null 设置为 target 的相关文章

  • 如何让 BlazeDS 忽略属性?

    我有一个 java 类 它有一个带有 getter 和 setter 的字段 以及第二对 getter 和 setter 它们以另一种方式访问 该字段 public class NullAbleId private static final
  • 在内存中使用 byte[] 创建 zip 文件。 Zip 文件总是损坏

    我创建的 zip 文件有问题 我正在使用 Java 7 我尝试从字节数组创建一个 zip 文件 其中包含两个或多个 Excel 文件 应用程序始终完成 没有任何异常 所以 我以为一切都好 当我尝试打开 zip 文件后 Windows 7 出
  • Java 枚举与创建位掩码和检查权限的混淆

    我想将此 c 权限模块移植到 java 但是当我无法将数值保存在数据库中然后将其转换为枚举表示形式时 我很困惑如何执行此操作 在 C 中 我创建一个如下所示的枚举 public enum ArticlePermission CanRead
  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • 如何更改javaFX中按钮的图像?

    我正在使用javaFX 我制作了一个按钮并为此设置了图像 代码是 Image playI new Image file c Users Farhad Desktop icons play2 jpg ImageView iv1 new Ima
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • 从最终实体获取根证书和中间证书

    作为密码学的菜鸟 我每天都会偶然发现一些简单的事情 今天只是那些日子之一 我想用 bouncy castle 库验证 java 中的 smime 消息 我想我几乎已经弄清楚了 但此时的问题是 PKIXparameters 对象的构建 假设我
  • java.lang.IllegalStateException:提交响应后无法调用 sendRedirect()

    这两天我一直在尝试找出问题所在 我在这里读到我应该在代码中添加一个返回 我做到了 但我仍然得到 java lang IllegalStateException Cannot call sendRedirect after the respo
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • 如何使用 jUnit 将测试用例添加到套件中?

    我有 2 个测试类 都扩展了TestCase 每个类都包含一堆针对我的程序运行的单独测试 如何将这两个类 以及它们拥有的所有测试 作为同一套件的一部分执行 我正在使用 jUnit 4 8 在 jUnit4 中你有这样的东西 RunWith
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 长轮询会冻结浏览器并阻止其他 ajax 请求

    我正在尝试在我的中实现长轮询Spring MVC Web 应用程序 http static springsource org spring docs 2 0 x reference mvc html但在 4 5 个连续 AJAX 请求后它会
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • Java中super关键字的范围和使用

    为什么无法使用 super 关键字访问父类变量 使用以下代码 输出为 feline cougar c c class Feline public String type f public Feline System out print fe

随机推荐

  • numpy 数组 C API

    我有一个返回 std vector 的 C 函数 我想在 python 中使用它 所以我使用 C numpy api static PyObject py integrate PyObject self PyObject args std
  • SAS proc导出到CSV:如何添加双引号

    刚接触这个 所以很抱歉 我有一个 SAS 文件 需要将其导出为 CSV 并且需要向所有字段添加双引号 我怎样才能做到这一点 提前致谢 从 SAS 创建 CSV 文件的方法有多种 使用proc export不会将每个字段都用双引号括起来 因此
  • 如何在 ruby​​ 中从外部访问类变量?

    我正在尝试从类外部的方法访问类变量 这是我的课 class Book bookCount 0 allBooks def self allBooks allBooks end def self bookCount bookCount end
  • 如何休眠线程直到收到异步函数的回调?

    我有一个函数 仅当从异步函数接收到回调时才需要执行 Like 我调用异步函数Stop 不久之后我调用异步函数Start 收到 Stop CallBack 之前的问题Start 被调用 因此我遇到了问题 我也无法分开调用两个函数 就像我不能这
  • 学习 HTML 语义的最佳网站是什么? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我应该在哪里指导别人学习 HTML CSS 基础知识 我个人是从HTML 好东西回到过去 虽然我感谢肯 伯恩斯让我继续前进 但我现在不愿意派人去那个网站 因为我认为它已经过时了 显然 有很
  • Emacs 在 python 模式下禁用自动完成

    我正在使用 Emacs 24 并且想在 python 模式下禁用自动完成模式 这样它就不会与 jedi 冲突 我该如何去做这个 遗憾的是我不知道 Emacs Lisp 以下是我当前在 init el 中有关自动完成的设置 auto comp
  • jsp中的数字格式

    如何格式化 int 值123456789 as 123 456 789 使用 JSTL fmt formatNumber http download oracle com docs cd E17802 01 products product
  • ColdFusion 的 DecimalFormat() 函数中这是怎么回事?我怎样才能得到正确的结果?

  • d3 将 csv 文件导入数组[重复]

    这个问题在这里已经有答案了 我正在尝试使用 d3 csv 方法导入 csv 文件 这是我的代码 d3 csv data csv function data console log data 我认为我会得到一个包含对象的数组 每个对象代表 c
  • Java中String的内存使用

    我有一个 Java 对象 其中包含一个字符串 我很好奇字符串的内存使用情况是如何工作的 我正在尝试优化程序的内存使用情况 应用程序将有大约 10000 个这样的对象 对于诸如 Hello World 之类的字符串 内存使用量是多少 Java
  • 如何在word中使用VBA(宏)使用/启用(RegExp对象)正则表达式

    我做了很多谷歌搜索以获得关于如何在 VBA 中使用或开始使用正则表达式的正确答案 终于明白了 所以我想和大家分享我的知识 如果我错了 请纠正我 默认情况下 Word 2007 中禁用正则表达式选项 要启用该选项 请执行以下步骤 1 Go t
  • 在 Python 方法中使用 self 作为临时变量有什么区别吗?

    有时我需要在方法定义中使用不在方法外部使用的临时变量 使用之间的行为有什么区别吗self MyVariable and MyVariable在下面的类定义中 哪种方法更好 为什么 示例1 self MyVariable class MyCl
  • Pycharm不显示绘图

    Pycharm 不显示以下代码的绘图 import pandas as pd import numpy as np import matplotlib as plt ts pd Series np random randn 1000 ind
  • Python-查找内存中的当前对象

    有没有办法找到当前内存中的对象 包括它们的名称 它们所在的位置和模块名称等 任务管理器中 main 方法之前的进程 Python exe 的内存占用为 15MB main方法完成第一次迭代后 进程Python exe内存大小为250MB 我
  • node.nextSibling 和 ChildNode.nextElementSibling 之间有什么区别?

    div Here is div 01 div div Here is div 02 div 它们不是同一件事吗 两者都返回紧随其后的节点 我读了很多文章 但在我看来都喜欢同样的东西 但不知道在哪里使用其中一个与另一个 nextElement
  • Bootstrap 方法返回 null - Android 在启动时立即崩溃

    React Native 和 React native navigation 的新手 应用程序在 iOS 上运行正常 但在启动时很快抛出以下异常 E AndroidRuntime FATAL EXCEPTION main Process c
  • Apache 反向代理到节点 - 连接被拒绝:AH00957

    我正在尝试让一个全新的基于云的服务器与默认版本的 20 04 服务器 ubuntu 一起使用 apache 和节点 节点服务器似乎正在运行 没有报告 4006 端口已打开的问题 但我相信我的 apache 配置不是 该请求将挂起很长一段时间
  • Flash Builder 中的输出文件名

    我是第一次尝试 Flash Builder 但我陷入了一个简单的任务 如何更改输出文件名 默认情况下 Flash Builder 为 SWF 提供与入口点类相同的名称 但我找不到任何地方可以更改它 Anybody 只需在编译和构建时更改主应
  • 在 Java 线程中模拟竞争条件的代码

    我是 Java 多线程新手 我正在学习竞争条件的概念 基于Oracle文档 http docs oracle com javase tutorial essential concurrency interfere html 我创建了一个示例
  • 使用 mapstruct 将 null 设置为 target

    我正在使用 mapstruct 我想知道是否有任何方法可以为某些目标属性设置 null 值 例如 public class MySource private String prop1 private String prop2 public