No.10 mybatis resultMap自定义使用和spring boot实现
项目需求:
计算经纬度之差,返回距离distance最近的N个记录,并带有计算到的距离。但是数据表中没有distance字段,也不允许改变原有的其他sql功能。
配置:
mybatis CodeGenerator。自动生成的结构
想法:
1. mybatis resultMap可以自定义想要返回的结构,但是其 Type参数必须填Model中一个实体。而本来的实体是没有distance字段(变量)的。所以在新实体上,需要加上distance。
2. 在mapper.xml上新加 resultMap,指向 带distance的实体。
3. 写的sql
新建带distance 的实体,Model
就是其他属性都一样,新增一个distance的属性
package com.company.project.model.distance;
import com.alibaba.fastjson.annotation.JSONField;
import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;
@Table(name = "maintenance_info")
public class MaintenanceInfoDistance {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "distance")
private Integer distance;