ZSJC1 和ZSJC2 是一对多关系 @Data @TableName("zsj_c1") public class ZSJC1 { private int id; private String name; @TableField(exist = false) private List<ZSJC2> zsjc2s; }
@Data @TableName("zsj_c2") public class ZSJC2 { private int id; private String name; private String type; private int c1Id; }
ZSJC1 实体类id,name与ZSJC1实体类id,name字段一样,ZSJC1 与ZSJC1关系是一对多关联,如果在mybatis不使用别名的话,mybatis是识别不了的,查询出来的结果是混乱的
使用别名的查询如下 :
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.xx.xx.mapper.ZSJMapper"> <resultMap id="BaseMap" type="com.xx.xx.entiy.ZSJC1"> <id column="id" property="id"/> <result column="name" property="name"/> <collection property="zsjc2s" ofType="com.xx.xx.entiy.ZSJC2"> <id column="cid" property="id" /> <result column="cname" property="name" /> <result column="type" property="type"/> <result column="c1Id" property="c1Id" /> </collection> </resultMap> <select id="get" resultMap="BaseMap"> SELECT a.id,a.name,b.id AS cid,b.name AS cname,b.type,b.c1_id AS c1Id FROM zsj_c1 a LEFT JOIN zsj_c2 b ON a.id=b.c1_id WHERE a.id=1 </select> </mapper>