最近在做一个前后端分离的小案例的时候,前端一直获取不到后端两个is开头的属性值,后来打印后发现is的前缀被自动去掉了。由此想到以前在看开发规范的时候,对这个一点有一些印象,大概就是避免使用is开头来命名属性值。特此记录一下。
数据库定义如下:两个字段为tinyint类型
对应的实体类中属性定义如下:两个属性为布尔类型
前端获取到的值:
对于产生此问题的原因,又看了一下阿里的开发规范
意思是建数据库表推荐表示是否的字段以is开头,但类中要避免使用is开头的变量命名,推荐使用resultMap进行映射。原因是某些框架在进行解析的时候会出现异常。
这里涉及到boolean类型的参数问题,getter和setter方法与非boolean类型的不一致,
对于boolean类型的参数,getter方法会以is开头,如isReceipt,isExamine,如下:
(这里我没有去深究如何解析的,后面有时间再去研究)
解决方法:
1.将生成的isReceipt()方法名改成getIsReceipt()
2.在生成的get方法上面也就是isReceipt上面加上@JsonProperty(value = "isXXX")
注解
@JsonProperty(value = "isReceipt")
public boolean isReceipt() {
return isReceipt;
}
@JsonProperty(value = "isExamine")
public boolean isExamine() {
return isExamine;
}
之后,前端能够正常获取: