目前,MapStruct不支持具有多个源属性的映射方法。

但是,在您的情况下,您可以使用1.2.0中的@Context 。 根据我的理解, projId和code就像映射的帮助器一样,它们不用于映射目标属性。

所以你可以做一些事情(它应该在理论上起作用):

@Mapper

public interface OneMapper {

@Mapping(target="id", source="one.id")

@Mapping(target="qualified", qualifiedByName="checkQualifiedNamed")

OneDto createOne (One one, @Context Integer projId, @Context String code);

@Named("checkQualifiedNamed")

default Boolean checkQualified (One one, @Context Integer projId, @Context String code) {

if(one.getProjectId() == projId && one.getCode().equalsIgnoreCase(code)) {

return Boolean.TRUE;

}

return Boolean.FALSE;

}

}

另一种方法是将所有这些属性提取到一个单独的类中并传递它(这将允许多个相同类型的参数)。

该课程如下:

public class Filter {

private final Integer projId;

private final Integer val;

private final String code;

public Filter (Integer projId, Integer val, String code) {

this.projId = projId;

this.val = val;

this.code = code;

}

//getters

}

您的映射器将如下所示:

@Mapper

public interface OneMapper {

@Mapping(target="id", source="one.id")

@Mapping(target="qualified", qualifiedByName="checkQualifiedNamed")

OneDto createOne (One one, @Context Filter filter);

@Named("checkQualifiedNamed")

default Boolean checkQualified (One one, @Context Filter filter) {

if(one.getProjectId() == filter.getProjId() && one.getVal() == filter.getVal() && one.getCode().equalsIgnoreCase(filter.getCode())) {

return Boolean.TRUE;

}

return Boolean.FALSE;

}

}

然后,您可以调用mapper,如: mapper.createOne(one, new Filter(projId, val, code));

java多属性的map_java - 具有多个参数的MapStruct QualifiedByName - 堆栈内存溢出相关推荐

  1. pdfbox java.lang.outofmemoryerror_java - PDFBox 2.0.1挂起渲染pdf页面 - 堆栈内存溢出

    可以在Java 8 VM中重现该问题. 正如@Tilman在他的回答中已经提到的,这是Java 8使用与以前的Java版本不同的颜色管理系统引入的一个问题. 通过使用新的色彩管理系统分析VM行为,可以 ...

  2. flyingsaucer转换多个html,java - 使用FlyingSaucer将包含阿拉伯字符的HTML页面转换为PDF - 堆栈内存溢出...

    我想使用FlyingSaucer将包含阿拉伯字符的HTML页面转换为PDF文件,但生成的PDF不包含组合字符并向后打印输出. HTML: جميع الحقوق Java摘录: String inpu ...

  3. java自带的unpack闪退,java - 使用requiresUnpack无法正常使用Maven构建的Spring Boot JAR - 堆栈内存溢出...

    我的POM看起来像这样: xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/ ...

  4. java 重载 参数子类_java - Java中带有子类参数的函数重载 - 堆栈内存溢出

    这个问题已经在这里有了答案: 我有一个扩展了另一个类的类(在这种情况下,这是一个例外): public class NewTypeException extends Exception { priva ...

  5. java 图片有损压缩_java - 用有损jpeg压缩多页tiff图像 - 堆栈内存溢出

    将图像从16位减少到8位. 假设您有一个byte []变量plane16,在其中您有图像的所有像素. 注意 :我的byte [] plane16从16位图像获取数据,但是byte为8bit = 1by ...

  6. java算球体积的代码_java - 球体体积法不起作用 - 堆栈内存溢出

    为了使球体体积法起作用,我尝试了许多不同的计算方法. 我的Sphere类是从Circle扩展的,以从圆中获取面积,并实现了Shape3D接口,该接口允许我使用体积方法. 但是,我已经为我的方法尝试了所 ...

  7. java pdf 用系统字体大小_java - Java PDFBox设置PDF表单中几个字段的自定义字体 - 堆栈内存溢出...

    使用穷人的大胆 我如何大胆的领域? ......我需要设置哪些大胆的字段? 在PDF中,您通常使用带粗体字形的字体使文本变为粗体,另请参阅第二个问题. 如果你手上没有这么大胆的字体,你可能会使用一些穷 ...

  8. Java继承属性后内存,java - Jackson:继承和必需的属性 - 堆栈内存溢出

    我目前正在尝试使用能够处理多态性的杰克逊(Jackson)实现反序列化器,也就是说,给定这两个类: public abstract class Animal { private String name ...

  9. java多表查询实体接收_java - 如何创建Criteria Builder查询以连接具有一对一和多对一实体关系的三个表? - 堆栈内存溢出...

    我想创建一个用于连接三个表的条件构建器查询. 我已经研究了互联网,但是三个表连接的所有示例都具有与我想要的关系不同的关系. 因此,我有三个具有以下结构的表: 并且实体如下: @Entity @Tabl ...

最新文章

  1. 使用OpenCV和Dlib的头部姿态估计
  2. SQLServer制作一个包含三个表的视图
  3. window无法对计算机进行,电脑按Win+E快捷键无法打开“计算机”如何解决
  4. 201521145048《Java程序设计》第11周学习总结
  5. c程序设计语言 练习1-6,C程序设计语言:第一章练习
  6. vs visual studio 2015安装后的几个问题
  7. 阿里云定时任务并自动释放
  8. 【专栏精选】实战:动态配置图片
  9. 201111-W-网络技术-基础理论与应用说明
  10. Elementary OS 使用fcitx安装搜狗词库、搜狗输入法(Ubuntu通用)
  11. css滚动条设置图标,更改滚动条上下箭头图标
  12. php ctype xdigit,PHP ctype_xdigit()用法及代码示例
  13. python 文件另存为快捷键_pycharm快捷键
  14. ERP系统BOM详细解析(一)
  15. 基本数据类型一题解析:已知m=11,n=41,输出m和n的2次方、3次方、4次方。(附代码)
  16. 热红外探测器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  17. SmokePing安装手册
  18. linux的批处理文件怎么写,Linux下批处理文件编写
  19. 指令于动作之forward动作
  20. input标签能换行么?textarea标签属性

热门文章

  1. html自定义滚动条不占位,如何实现滚动条在各浏览器中不占用布局
  2. 网站三级分销数据库如何设计,简单案例
  3. jquery ajax post请求连续多个问号特殊数据异常问题
  4. Maven中Spring-Data-Redis存储对象(redisTemplate)
  5. 现代软件工程讲义 3 代码规范与代码复审
  6. 多态(继承父类的非静态重写方法)
  7. 【OS学习笔记】十五 保护模式三:保护模式下的内存访问机制
  8. Java 中的 Reference
  9. PyChram简单使用教程
  10. python实战学习之matplotlib绘图续