@RequestBody序列化有@Builder修饰的实体类时产生的问题
问题来源
写一个POST接口时,使用@RequestBody注解序列化参数对象,对象中使用LomBok的@Builder注解
@ApiOperation(value = "保存导入导出配置", notes = "需token")@PostMapping("/save")public ResultVO<Void> save(@RequestBody @Validated ImportConfigSaveDto saveDto) {importExportConfigService.save(saveDto);return ResultUtil.success();}
然后调用接口时,报以下错误:
java.lang.NoSuchMethodError: com.aixiao.business.dto.importconfig.ImportConfigSaveDto.<init>()V
原因分析
@RequestBody注解将json字符串反序列化为实体类对象走的是无参构造,而@Builder注解加在实体类即使加上@Data注解也会报错,具体原因有兴趣可以搜索相关博客
解决方案
给实体对象手动添加无参构造方法,并加上@Tolerate注解(作用是让lombok不感知)
@Getter
@Setter
@Builder
public class ImportConfigSaveDto implements Serializable {private static final long serialVersionUID = -2239193425632481616L;@ApiModelProperty("应用ID")private Integer appId;@ApiModelProperty("导入配置")private String importContent;@ApiModelProperty("导出配置")private String exportContent;@ApiModelProperty("是否启用 true-启用,false-禁用")private Boolean enabled;@Toleratepublic ImportConfigSaveDto() {}
}
@RequestBody序列化有@Builder修饰的实体类时产生的问题相关推荐
- mybatis oracle生成注释,MyBatis Generator生成Oracle数据库对应实体类时无法获取注释问题...
最近在利用mybatis generator生成Oracle数据库对应的实体类时发现一个问题,特此记录下. 因为项目使用到了swagger2,所以想在生成实体类时通过表注释和字段注释生成对应的@Api ...
- jquery ajax 序列化表单传参提交实体对象到后台action
========action后台我这里使用的是SpringMVC如果用ssh用法一致=============== @Controller @RequestMapping("PubjobCo ...
- 使用IDEA逆向生成实体类时注意问题(Maven)
第一步:配置pom.xml文件添加mybatis插件(直接加到相应位置就行) <!--mybatis插件--><plugin><groupId>org.mybati ...
- 【Java笔记】Java创数据库实体类时如何处理表格的外键
刚学习数据库时有过这样的疑惑,我们的数据库是这样的: 我们在实体类将一般表格项定义为属性是这样的: 那么如何处理order实体中的uid呢?方法如下: 1.在Order实体类中定义一个User对象 2 ...
- SwiftUI Macaw 如何修复Expression was too complex to be solved in reasonable time
问题 Expression was too complex to be solved in reasonable time 解决方案 Swift对类型推断的使用使我们的代码更短,更易于阅读,但同时也占 ...
- 对象的序列化与反序列化---IO学习笔记(四)
对象的序列化,反序列化 对象的序列化: 就是将Object转换成byte序列 对象的反序列化: 将byte序列转换成Object 序列化流,反序列化流 序列化流(ObjectOutputStream) ...
- 从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~二 DBContext实例中,表实体对象是怎么被加入的...
一 DBContext的构造方法,方法的重载 二 DBContext实例中,表实体对象是怎么被加入的 三 分部类是否破坏了单一职责 四 分部方法从另一方面定义了类型的操作规范 五 LINQ实体类中对属 ...
- [Serializable]在C#中的作用——实现.NET对象序列化
简介 序列化是指将对象实例的状态存储到存储媒体的过程.在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流.在随后对对象进行反序列化时,将创 ...
- C#之三十七 实体类
视频课: C#程序设计与宿舍管理系统实战 3.1 使用实体类构建三层结构概述 在上一章中的三层架构中,我们使用DataSet来进行数据的传递,但在OOP的开发中,有很大的局限性: 1. ...
最新文章
- 如何从字符串中删除文本?
- Spring的jdbcTemplate 与原始jdbc 整合c3p0的DBUtils 及Hibernate 对比 Spring配置文件生成约束的菜单方法...
- python3.5兼容2.7吗_Python版本2.7切3.5和3.5切2.7
- uniapp动态修改样式_掌握Photoshop图层样式技术
- kubernetes安装Helm
- C++ - extern C用法浅析
- java爬虫框架_Python,爬虫开发的不二选择
- 商务人士,你抛弃邮箱了吗?
- 人脸识别 java_利用Java调用OpenCV进行人脸识别
- 邱锡鹏神经网络怎么样,邱锡鹏 神经网络pdf
- java 文件 锁定,Java中的文件锁定
- VIVADO除法IP注意事项
- XtraBackUp 全量备份
- “信息安全产品”的昨天、今天和明天
- python协同过滤算法_协同过滤(ALS)的原理及Python实现
- ZOJ 3797 Sister's Noise 组合+DP
- mysql函数汇总之字符串函数
- DEBUG命令大全及实例(有改动)
- 指纹识别综述(8): 唯一性
- 在计算机中c语言是属于什么作用,C语言属于下列哪一类计算机语言( )