问题遇到的现象和发生背景
就是我的项目里有个根据输入所在区域和起始时间以及终止时间来查询 某停车场‘已占用的车位数’,‘实际能用的车位数’,‘总车位数’,
现在要查询的这三个字段都有实例和数据库表字段,也在resultMap里面。这个是已经写好的,并且参与了page分页。
现在我想增加一个只在查询时会显示的‘未占用的车位数’,不动数据库和resultMap,如何在业务层把它拼接进去?或者有没有别的思路?
用代码块功能插入代码,请勿粘贴截图
public IPage<ParkInfoVO> selectForParkingDetail(String address, LocalDate dateS, LocalDate dateE, IPage<ParkInfoVO> page) {
return page.setRecords(baseMapper.selectForParkingDetail(address,dateS,dateE,page));
}
运行结果及报错内容
没报错,用我下面的想法结果不返回数据
我的解答思路和尝试过的方法
起初我是直接在mapper.xml里面修改了sql语句,在select后面加了一个 real_park - use_park as unuse_park,(实际减已用别名未用)想通过别名一下显示出来。
但是测试的时候发现在数据库里运行那个语句是可以查的,但是在postman里面测接口的时候不会返回那个我别名的字段和数据,查不出来。
然后我就想是不是因为别名的那个字段没有被映射到resultMap里所以才不显示。
然后我了解到好像是可以另写一个sql拼接过去。但是我想了半天没想明白怎么去拼接又不会影响原本的分页。
我想要达到的结果
结果就是需要在返回给前端的数据里多给一个‘未占用的车位数’的数据,其它的不变,本来的话好像数据库里加个字段,对应的xml,实体类也加上就能解决问题的东西,但是现在不能动原来的数据库,只在要查的时候显示。应该怎么弄?