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));

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

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

相关文章

用带参数的方法给空数组放元素,寻找数组里面的值是否存在。

package ch08;import java.util.Scanner;/** * Created by liwenj on 2017/7/20. */public class Person { String[] names new String[30];//把为null的元素添加内容 void addName(String name) { for (int i 0; i < names.length; i) { if (nam…

centos中配置java视频教程_安装CentOs

Redis是一个key-value存储系统。和Memcached类似&#xff0c;它支持存储的value类型相对更多&#xff0c;包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作…

python-day8-赋值

# x10#链式赋值# abcdef10# print(a,b,c,d,e,f)#增量赋值# x10# ya# tempx# xy# ytemp# print(x,y)# x,yy,x# print(x,y)#值的解压# msghello# l[1,2,3]# a,b,c,d,emsg# print(a,b,c,d,e)# a,_,_,_,emsg# a,*_,emsg# print(a)# print(e)# dic{a:1,b:2,c:3}# x,y,zdic# print(x,…

java getapplicationcontext_java – getApplicationContext()中的空指针

我正在尝试以下代码,其中一个服务正在实现我的监听器&#xff1a;public class MyListenerClass extends Service implements MyListenerInterface {public void onCurrencyRecieved(MyEventClass event) {System.out.println("Coins Recieved - Listener Successful"…

怎样解决MySQL数据库主从复制延迟的问题?

1.网络超时2.慢查询3.流量 问题一&#xff1a;主库的从库太多&#xff0c;导致复制延迟从库数据以3-5个为宜&#xff0c;要复制的从节点数量过多&#xff0c;会导致复制延迟问题二&#xff1a;从库硬件比主库差&#xff0c;导致复制延迟查看Master和Slave的系统配置&#xff0c…

神盾局特工第四季/全集Agents Of SHIELD迅雷下载

英文全名Agents Of SHIELD&#xff0c;第4季(2016)ABC. 本季看点&#xff1a;《神盾局特工》&#xff08;Agents Of SHIELD&#xff09;第三季季终集里&#xff0c;我们终于知道谁死了……但死的不是一个&#xff0c;而是两个。在这两集中&#xff0c;很多角色都遭遇过险境&…

java jsonalias_将多个JSON字段映射到单个Java字段

简介本文中&#xff0c;教大家如何使用Jackson和Gson将不同的JSON字段映射到单个Java字段中。Maven依赖为了使用Jackson和Gson库&#xff0c;我们需要在POM中添加以下依赖项&#xff1a;com.google.code.gsongson2.8.5testcom.fasterxml.jackson.corejackson-databind2.9.8test…

怎么用PHP修改文字大小,如何利用PHP和CSS改变网页文字大小

列表B// start session// import selected size into sessionsession_start();$_SESSION[textsize] $_GET[s];header("Location: " . $_SERVER[HTTP_REFERER]);?>这很简单&#xff0c;当用户选择了一种新的文本大小&#xff0c;resize.php通过GET方法来获得字号…

1.基础概念

1.1 URL(统一资源定位符) 协议:约定.(http) IP:地址(英特网中电脑唯一标识) 端口号:电脑中软件额唯一标识 http://localhost:8080/news/index.hmtl 协议://ip地址:端口号/项目名称/请求地址 转载于:https://www.cnblogs.com/banxia123-ha/p/7231267.html

php科学计数法转string,php如何将科学计数法转数字

php将科学计数法转数字的实现方法&#xff1a;首先通过if语句判断指定的数值是否为科学计数法&#xff1b;然后提取科学计数法中有效的数据&#xff1b;接着正式处理该数据&#xff1b;最后调用“convert_scientific_number_to_normal”方法实现转换即可。PHP将科学计数法转换为…

android UI布局

一、设置反复背景在drawable目录下建一个mybackground.xml文件在文件里写入&#xff1a;<?xml version"1.0" encoding"utf-8"?><bitmap xmlns:android"http://schemas.android.com/apk/res/android"android:src"drawable/mybg_i…

php8vsgo,服务端 I/O 性能:Node、PHP、Java、Go 的对比

原标题&#xff1a;服务端 I/O 性能&#xff1a;Node、PHP、Java、Go 的对比了解应用程序的输入/输出(I/O)模型意味着理解应用程序处理其数据的载入差异&#xff0c;并揭示其在真实环境中表现。或许你的应用程序很小&#xff0c;在不承受很大的负载时&#xff0c;这并不是个严重…

Python day8

阅读目录 为什么要用函数  函数的定义与调用  函数的返回值  函数的参数  本章小结返回顶部为什么要用函数 现在python届发生了一个大事件&#xff0c;len方法突然不能直接用了。。。 然后现在有一个需求&#xff0c;让你计算hello world的长度&#xff0c;你怎么计算&…

java创建对象过七夕,想 new 个对象过七夕,她却抛了异常

原标题&#xff1a;想 new 个对象过七夕&#xff0c;她却抛了异常关注 “”导读&#xff1a;单身之痛......作者 | 轩辕之风来源 | 编程技术宇宙(ID&#xff1a;xuanyuancoding)七夕又到了&#xff0c;单身汪们太难了&#xff0c;每年不仅要经历双十一&#xff0c;要经历2.14&a…

【Redis】解析Redis和Java传递数据

在Java中使用Redis之前需要导入 jedis.jar 包&#xff0c;由于Redis是基于key-value进行数据存储&#xff0c;java中的数据存储到Redis中有许多方式&#xff0c;这里笔者介绍采用JSON字符串和对象序列化两种方式。 1&#xff0c;使用JSON方式 首先将Java对象转化为JSON字符串 …

sql查询php,SQL查询或PHP?

我想看看哪里做错了&#xff0c;但我不能找到问题&#xff0c;我不能更新我的数据库&#xff0c;有人可以看到我的代码什么是缺少的&#xff1f;总是说我“数据库错误”码&#xff1a;if(isset($_POST[enviar])) {$types"";for ($i0; $i$types$types.$_POST[texames]…

C#带按钮的文本框TextBoxContainButton

经常需要用到各种组合控件&#xff0c;每次组合太麻烦&#xff0c;通过打包成自定义控件&#xff0c;方便调用。 带按钮的文本框&#xff0c;如下图&#xff1a; 文本框内可以输入文本&#xff0c;响应文本框内容变化事件&#xff0c;按钮可以设置点击事件&#xff0c;图标 通过…

PHP用gd库给图片添加水印,php用GD库给图片添加水印

php用GD库给图片添加文字水印&#xff0c;整个代码比较简单&#xff0c;DEMO如下&#xff1a;/*打开图片*///1、配置图片路径$src "aeroplane.jpg";//2、获取图片信息$info getimagesize($src);//3、获取图片类型$type image_type_to_extension($info[2], false);…

Windows单机配置Zookeeper环境

转自&#xff1a;http://www.jianshu.com/p/f7037105db46 首先要确保机器已经安装好java环境&#xff0c;并且配置好环境变量 http://apache.fayea.com/zookeeper/current/ 下载后&#xff0c;解压缩到硬盘&#xff0c;我这里解压到了 D:\WorkSoftware\zookeeper_3.4.9 解压缩在…

php 方法里用外部变量的值,PHP实现函数内修改外部变量值的方法示例

本文实例讲述了PHP实现函数内修改外部变量值的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;直接上代码&#xff0c;如下&#xff1a;$a_str ab;function change_val(){global $a_str; // 通过设置全局变量&#xff0c;修改变量值//$a_str abc;$a_str $a_str…