Feezylu 2022-10-27 11:28 采纳率: 100%
浏览 27
已结题

请问我查询功能想要增加显示一个自己别名的字段应该怎么去拼接啊?

问题遇到的现象和发生背景

就是我的项目里有个根据输入所在区域和起始时间以及终止时间来查询 某停车场‘已占用的车位数’,‘实际能用的车位数’,‘总车位数’,
现在要查询的这三个字段都有实例和数据库表字段,也在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,实体类也加上就能解决问题的东西,但是现在不能动原来的数据库,只在要查的时候显示。应该怎么弄?

  • 写回答

2条回答 默认 最新

  • Ralph Chen 2022-10-27 11:41
    关注

    方案1:如果可以根据其他字段算出“未占用的车位数”的话,可以在数据查完用代码算出结果封装返回给前端
    方案2:xml里的resultMap是可以多个的,可以新增一个resultMap继承原来的resultMap,新增一个字段即可
    方案3:如果不想新增resultMap,可以在自定义sql那里的resultType参数填你返回给前端的vo,查询的时候字段名使用别名对应vo的字段

        <select id="selectDemo" resultType="com.ralph.resturnVO">
            select file1 as 'filed1' from table_name
        </select>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月4日
  • 已采纳回答 10月27日
  • 创建了问题 10月27日

悬赏问题

  • ¥15 CFEDEM自带算例错误,如何解决?
  • ¥15 有没有会使用flac3d软件的家人
  • ¥20 360摄像头无法解绑使用,请教解绑当前账号绑定问题,
  • ¥15 docker实践项目
  • ¥15 数电几道习题,写出作答过程,ai一律不采用
  • ¥15 利用pthon计算薄膜结构的光导纳
  • ¥15 海康hlss视频流怎么播放
  • ¥15 Paddleocr:out of memory error on GPU
  • ¥30 51单片机C语言数码管驱动单片机为AT89C52
  • ¥100 只改动本课件的 cal_portfolio_weight_series(decision_date), 跑完本课件。设计一个信息比率尽量高的策略。