在网络上有着两个一对多查询方式,但是只有一个是能用的,使用ResultMap方式进行一对多查询,
其中在Mapper.xml中如下配置:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.acompe.security.mapper.UserMapper"><select id="findUserByUsername" resultMap="user" parameterType="String">SELECT a.id,a.username,a.`password`,a.is_enable,a.create_time,a.update_time, p.urlFROM user_account aINNER JOIN user_account_role arON a.id = ar.user_account_idINNER JOIN user_role_permission rpON ar.user_role_id = rp.user_role_idINNER JOIN user_permission pON rp.user_permission_id = p.idWHERE a.id = 1;</select><resultMap id="user" type="com.acompe.security.model.po.User"><id column="id" property="id"/><result column="username" property="username"/><result column="password" property="password"/><result column="is_enable" property="isEnable"/><result column="create_time" property="createTime"/><result column="update_time" property="updateTime"/><collection property="authorities" ofType="org.springframework.security.core.authority.SimpleGrantedAuthority"><result column="url" property="role"/></collection></resultMap></mapper>
