使用@RequestBody注解接收的实体类中的某些参数为null
原因
postman调试接口
为null的参数命名不符合“驼峰法”,类似实体类A的属性 cEnterpriseId ,这种命名是不规范的
和lombook的@Data注解有关
用postman传一个json到接口,json在传输过程中会被转为“字节流”,接口controller层的@RequestBody加在实体类参数前面,会把接收到的字节流反序列成为一个java实体类。@RequestBody在反序列化的时候给实体类赋值使用的get/set方法是idea自动生成的get/set方法,即:getcEnterpriseId()/setcEnterpriseId(),
所以@RequestBody是用setcEnterpriseId()给是实体类A赋值,但在A类中setcEnterpriseId()是不存在的,A类中通过lombook的@Data注解生成的只有setCEnterpriseId()方法
setcEnterpriseId() 不等于 setCEnterpriseId(),所以赋值失败
解决
方法一:在属性上加@JsonProperty注解
方法二:手动在实体类添加get / set方法,不用lombook自动生成的
方法三:把postman传参的cEnterpriseId改成小写centerpriseId
使用@RequestBody注解接收的实体类中的某些参数为null的更多相关文章
- Spring中使用@RequestBody注解接收的实体类中的某些参数为null
1.问题描述 我写完一个接口,在用postman测试的时候,发现其中有一个参数cEnterpriseId明明是有值的,但接口controller接收到的该参数为null,但其他参数都不为null的. ...
- Hibernate jpa 在实体类中对于时间的注解
在时间类型DATE 属性上添加一个 @Temporal(TemporalType.DATE)(精确到年月日)@Temporal(TemporalType.TIME)(精确到时分秒)@Temporal( ...
- 解决Entity 实体类中加了@Id 注解后仍然出现org.hibernate.AnnotationException: No identifier specified for entity 错误
启动报错如下图所示: 解决方案: 查看网上的资料,大部分都说在实体类中没有添加加主键的注解@Id,这个是必须的.但是我的实体类中明明已经添加了@Id,为什么还会报这个错误呢? 后来检查了很久,发现是我 ...
- spring中RequestBody注解接收参数时用JSONField转参数名无效问题
问题: 在springboot项目中使用@RequestBody注解接收post请求中body里的json参数的情况.即: @RequestMapping(value = "/get-use ...
- 读取Excel文件存储在实体类中
1.Maven文件 <!--读取Excel的架包--> <dependency> <groupId>org.apache.poi</groupId> & ...
- 当实体类中entity/DTO/VO等类中,有枚举值,应该怎么输出?
当实体类中entity/DTO/VO等类中,有枚举值,应该怎么输出? 问题: orderStatus 和 payStatus都是枚举类,并且枚举的个数达地10来个,我们不可能在模板页面(jsp/ftl ...
- C#:实体类中做数据验证
主要是在实体类中验证 using System; namespace Jone.Function.attribute{ /// <summary> /// 附加 ...
- 尚硅谷面试第一季-11MyBatis中当实体类中的属性名和表中的字段名不一样怎么办
问题: MyBatis中当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 解决方案: 1.写sql语句时起别名 <!-- id属性:必须是接口中方法的方法名 resultType属性:必须是 ...
- MyBatis系列二 之 数据库列名于程序实体类中字段名称不一致
MyBatis系列二 之 数据库列名于程序实体类中字段名称不一致 情景:当数据库中的列名与我们程序实体类中的字段名称不一致 使用ResultMap节点配置信息 在映射文件中 ...
- Java定义bean实体类中的变量时变量名的问题
首先:TMD,这个问题花了我两个多小时,居然是因为一个字母的大小写导致的,我瞬间就&Y^%^&%&()*%¥%¥¥&^#@%&; 事情是酱紫的: 我定义了一个变 ...
随机推荐
- Occlusion(遮挡剔除)
Occlusion 1.视锥体剔除(Frustum Culling) 根据摄像机的视见体的范围对场景模型进行剔除操作,在视见体以外的物体不被渲染,但是在视见体中的物体会以离摄像机最远的物体开始渲染,逐 ...
- 【狂神说】SpringMVC笔记
1.回顾MVC ssm:mybatis+Spring+SpringMVC MVC三层架构 ssm框架:研究官方文档,锻炼自学能力,锻炼项目能力 SpringMVC+Vue+SpringBoot+Spr ...
- mysql 主次数据库搭建
准备工作:主192.168.200.51 从192.168.200.53 主从服务器需要有相同的初态 1.将主服务器要同步的数据库枷锁,避免同步时数据发生改变 mysql>use db; my ...
- 如何批量删除office文档属性
在文件资源管理器界面全选所有office文档, 右键->属性->详细信息->删除属性和个人信息->从此文件中删除以下信息->全选->确定,即可.
- php 允许跨域
1.控制器 header("Access-Control-Allow-Origin: *"); class Index extends Api {} 2.app/admin/con ...
- Ubuntu安装系统监视器system-monitor并显示在状态栏(火狐浏览器)
system-monitor 使用过Windows 10的朋友们都知道,Windows 10系统自带了一项功能--任务管理器,我们可以通过它方便地查看当前系统的状态,主要包括CPU,内存,硬盘,GPU ...
- 肖sir__整理项目链接
项目链接: https://www.cnblogs.com/xiaolehong/p/16460523.html 保险项目https://www.cnblogs.com/xiaolehong/p/16 ...
- docker 创建 network 指定ip 段
docker network create -d bridge --gateway 172.22.0.1 --subnet 172.22.0.0/16 zk_default
- 072_关于Dataloader导入Record的创建时间及修改时间并允许owner是Inactive
1.在User interface 中 启用 Enable "Set Audit Fields upon Record Creation" and "Update Rec ...
- Git探究
Git Git是什么? Git是一个开源的分布式版本控制系统. 1.什么是版本控制? 字面意思,控制版本,存储.追踪目录和文件的修改历史.市面上有各式各样的版本控制工具,比较常用的SVN.Git等等. ...