记录后台遇到的两个小问题
作者:weiewiyi
来源:SegmentFault 思否社区
specification查询不起作用
写后台的时候需要加一个specification查询,只返回属于该社区的数据。

于是我增加了如图红框中的查询,调用了and函数。
specification.and(VehicleSpecs.belongToCommunity(district.getId()));
但是执行后发现,这条查询没有按照想法获取到查询到数据,相当于这条查询并没有作用。在打断点之后,发现确实进入了查询函数里。
测试了很多遍还是如此,这条查询语句并没有起作用。
后来查谷歌之后发现有人和我遇到同样的问题。
解决方法很简单:
让specification等于and函数返回值

也就是这样:
specification = specification.and(VehicleSpecs.belongToCommunity(district.getId()));
然后回过头看and函数的声明才发现:
返回的是一个Specification类型的数据。也就是说,我并没有保存这个数据,所以查询失效了。
应该重新给本地变量赋值。这样才能使查询真正添加上去。

之后回过头来想想,我没有想到重新赋值的原因,可能是习惯了下图中的方式,即调用了函数,就真正地把数据添加了进去,不用再去重新赋值。

总结来说还是需要真正看函数的声明,查看它的返回值,以确定是否需要执行相关的操作。因为这个函数的用法和返回值都写在了声明中。
单元测试数据不一致
在单元测试中,第187行发生的错误。
MockMvc返回的值与期望的值不一致

但是去控制台一看:值是相同的。期望值是0,实际值也是0。这就很奇怪了,期望值和实际值相同,为什么两者没有通过判断呢。

很容易联系到是类型出了问题。
测试发现,Long,Integer, String, 都通过了。没通过的是Short类型的数据,即红框中的数据。

后来在后面加上 .toString()能正常通过。

这里mvc的json类型的数据是string类型, 与short类型数据判断的时候失败了,可能是两者不能正常识别。


关注公众号:拾黑(shiheibook)了解更多
赞助链接:
关注数据与安全,洞悉企业级服务市场:https://www.ijiandao.com/
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
- AI-Media2Doc一键音视频转文档,支持主流自媒体平台图文风格转换!
- Dioxus由DioxusLabs开发的全栈应用框架 旨在简化跨平台应用的开发。
- 董宇辉独立工作室起步,俞敏洪最新发声
- AVS领衔,全自主8K专业摄像机研发启动
- 赛迪观点:加强知识产权保护和运用,赋能“专精特新”企业培育
- 2022年彩电市场高端上扬
- 国家统计局:1-2月份规模以上工业增加值同比增长7.5%
- 日本内阁敲定78.9万亿日元规模经济对策
- 招聘网站开了这么多年,为什么你还是觉得找工作很难?
- 阿里、京东、拼多多都来了,互联网+疫苗是一门好生意吗?
- 百度造车,特斯拉+华为+微软?
- 【C114周报】工信部:明年新建5G基站60万个;爱立信CEO:若华为禁令仍在 将离开瑞典;三大运营商遭纽交所“摘牌”



微信扫码关注公众号