java多属性的map_java - 具有多个参数的MapStruct QualifiedByName - 堆栈内存溢出
目前,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 - 堆栈内存溢出相关推荐
- pdfbox java.lang.outofmemoryerror_java - PDFBox 2.0.1挂起渲染pdf页面 - 堆栈内存溢出
可以在Java 8 VM中重现该问题. 正如@Tilman在他的回答中已经提到的,这是Java 8使用与以前的Java版本不同的颜色管理系统引入的一个问题. 通过使用新的色彩管理系统分析VM行为,可以 ...
- flyingsaucer转换多个html,java - 使用FlyingSaucer将包含阿拉伯字符的HTML页面转换为PDF - 堆栈内存溢出...
我想使用FlyingSaucer将包含阿拉伯字符的HTML页面转换为PDF文件,但生成的PDF不包含组合字符并向后打印输出. HTML: جميع الحقوق Java摘录: String inpu ...
- java自带的unpack闪退,java - 使用requiresUnpack无法正常使用Maven构建的Spring Boot JAR - 堆栈内存溢出...
我的POM看起来像这样: xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/ ...
- java 重载 参数子类_java - Java中带有子类参数的函数重载 - 堆栈内存溢出
这个问题已经在这里有了答案: 我有一个扩展了另一个类的类(在这种情况下,这是一个例外): public class NewTypeException extends Exception { priva ...
- java 图片有损压缩_java - 用有损jpeg压缩多页tiff图像 - 堆栈内存溢出
将图像从16位减少到8位. 假设您有一个byte []变量plane16,在其中您有图像的所有像素. 注意 :我的byte [] plane16从16位图像获取数据,但是byte为8bit = 1by ...
- java算球体积的代码_java - 球体体积法不起作用 - 堆栈内存溢出
为了使球体体积法起作用,我尝试了许多不同的计算方法. 我的Sphere类是从Circle扩展的,以从圆中获取面积,并实现了Shape3D接口,该接口允许我使用体积方法. 但是,我已经为我的方法尝试了所 ...
- java pdf 用系统字体大小_java - Java PDFBox设置PDF表单中几个字段的自定义字体 - 堆栈内存溢出...
使用穷人的大胆 我如何大胆的领域? ......我需要设置哪些大胆的字段? 在PDF中,您通常使用带粗体字形的字体使文本变为粗体,另请参阅第二个问题. 如果你手上没有这么大胆的字体,你可能会使用一些穷 ...
- Java继承属性后内存,java - Jackson:继承和必需的属性 - 堆栈内存溢出
我目前正在尝试使用能够处理多态性的杰克逊(Jackson)实现反序列化器,也就是说,给定这两个类: public abstract class Animal { private String name ...
- java多表查询实体接收_java - 如何创建Criteria Builder查询以连接具有一对一和多对一实体关系的三个表? - 堆栈内存溢出...
我想创建一个用于连接三个表的条件构建器查询. 我已经研究了互联网,但是三个表连接的所有示例都具有与我想要的关系不同的关系. 因此,我有三个具有以下结构的表: 并且实体如下: @Entity @Tabl ...
最新文章
- 使用OpenCV和Dlib的头部姿态估计
- SQLServer制作一个包含三个表的视图
- window无法对计算机进行,电脑按Win+E快捷键无法打开“计算机”如何解决
- 201521145048《Java程序设计》第11周学习总结
- c程序设计语言 练习1-6,C程序设计语言:第一章练习
- vs visual studio 2015安装后的几个问题
- 阿里云定时任务并自动释放
- 【专栏精选】实战:动态配置图片
- 201111-W-网络技术-基础理论与应用说明
- Elementary OS 使用fcitx安装搜狗词库、搜狗输入法(Ubuntu通用)
- css滚动条设置图标,更改滚动条上下箭头图标
- php ctype xdigit,PHP ctype_xdigit()用法及代码示例
- python 文件另存为快捷键_pycharm快捷键
- ERP系统BOM详细解析(一)
- 基本数据类型一题解析:已知m=11,n=41,输出m和n的2次方、3次方、4次方。(附代码)
- 热红外探测器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- SmokePing安装手册
- linux的批处理文件怎么写,Linux下批处理文件编写
- 指令于动作之forward动作
- input标签能换行么?textarea标签属性