<?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.dounion.gzwy.sys.entity.SysUserToken">
<resultMap id="sysUserToken" type="com.dounion.gzwy.sys.entity.SysUserToken">
<id property="id" column="ID" jdbcType="INTEGER" />
<result property="token" column="TOKEN" jdbcType="VARCHAR"/>
<association property="user" column="USER_ID" javaType="com.dounion.gzwy.sys.entity.SysUser">
<id property="cacheKey" column="USER_ID" jdbcType="INTEGER"/>
<result property="account" column="ACCOUNT" jdbcType="VARCHAR"/>
<association property="person" column="PERSON_ID" javaType="com.dounion.gzwy.sys.entity.SysPerson">
<id property="id" column="PERSON_ID" jdbcType="INTEGER"/>
</association>
</association>
</resultMap>
<select id="findTokenByUser" parameterType="map" resultMap="sysUserToken">
SELECT user.ACCOUNT,user.PERSON_ID,user.ID,token.TOKEN
FROM t_sys_user user
LEFT JOIN t_sys_user_token token ON user.id = token.USER_ID
WHERE user.ACCOUNT = #{telephone}
</select>
</mapper>
对于findTokenByUser中的查询语句,resultMap是其对应的结果,我一直想查找user下person中的id值
<association property="person" column="PERSON_ID" javaType="com.dounion.gzwy.sys.entity.SysPerson">
<id property="id" column="PERSON_ID" jdbcType="INTEGER"/>
</association>
我一开始把这里的cloumn写成id,结果是user的id,他查的是user表的id,将他改为PERSON_ID就可以查到user下的person下的id了。