vo的构造方法注意小事项
1.有时候使用VO时,sql查询语句写的都对,要查询的字段也很明确,但是却查不到数据,
很有可能是VO中的构造方法的字段属性数量对不上,要注意一下。VO中的私有属性可
以很多,并且多个查询可以共用一个VO,但是要保证VO中的该构造方法中的参数数量
要与对应sql查询的字段数量要一致,否则就可能会导致查到的数据为空,或者如果使用
findBySql()的话,还可能会报数组下标越界的异常,很有可能就是构造方法属性的数量
跟sql返回的字段数量对不上导致的。
2.当使用vo接收sql查询的数据时,eg:
User user = userDao.findListBySql(UserVo.class, sql, params);
返回的user有多条数据,但是数据中的属性都为空
解决:
(1)首先要保证UserVO中的属性的数量与sql中查询的属性的数量一致。
(2)其次要保证sql中查询的各个属性的名称与UserVO中的属性的名称一致。
(3)然后要保证sql中查询的各个属性的前后顺序要与UserVO中的属性前后顺序一致。
(4)最后要保证UserVO中的构造方法的属性数量、名称要对。
多个查询可以公用一个vo,vo中的属性只可以多,不能少,要能与sql对的上,构造方法可以写多个,但是
属性数量和名称要对
3.还有一种情况是代码写的都对,也能查到多少多少条数据,但是返回的vo实体对象里的属性
都是空,全部都是null,这时可以尝试把vo中的lombok注解@Data去掉,改成手写的get和set
方法试一下。
<1>.可以通过@JsonFormat注解改变时间格式
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date modifyTime;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示