在网络上有着两个一对多查询方式,但是只有一个是能用的,使用ResultMap方式进行一对多查询,

    其中在Mapper.xml中如下配置:

    1. <?xml version="1.0" encoding="UTF-8" ?>
    2. <!DOCTYPE mapper
    3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    5. <mapper namespace="com.acompe.security.mapper.UserMapper">
    6. <select id="findUserByUsername" resultMap="user" parameterType="String">
    7. SELECT a.id,a.username,a.`password`,a.is_enable,a.create_time,a.update_time, p.url
    8. FROM user_account a
    9. INNER JOIN user_account_role ar
    10. ON a.id = ar.user_account_id
    11. INNER JOIN user_role_permission rp
    12. ON ar.user_role_id = rp.user_role_id
    13. INNER JOIN user_permission p
    14. ON rp.user_permission_id = p.id
    15. WHERE a.id = 1;
    16. </select>
    17. <resultMap id="user" type="com.acompe.security.model.po.User">
    18. <id column="id" property="id"/>
    19. <result column="username" property="username"/>
    20. <result column="password" property="password"/>
    21. <result column="is_enable" property="isEnable"/>
    22. <result column="create_time" property="createTime"/>
    23. <result column="update_time" property="updateTime"/>
    24. <collection property="authorities" ofType="org.springframework.security.core.authority.SimpleGrantedAuthority">
    25. <result column="url" property="role"/>
    26. </collection>
    27. </resultMap>
    28. </mapper>