在MyBatis中嵌套使用group_concat可以通過自定義SQL語句來實現。下面是一個示例:
首先,在mapper.xml文件中定義一個查詢語句,如下所示:
<select id="selectUserWithRoles" resultMap="UserResultMap">
SELECT u.id, u.name, u.email, GROUP_CONCAT(r.name) AS roles
FROM users u
LEFT JOIN user_roles ur ON u.id = ur.user_id
LEFT JOIN roles r ON ur.role_id = r.id
GROUP BY u.id
</select>
然后,在對應的Java接口中定義方法來調用這個查詢語句:
public interface UserMapper {
User selectUserWithRoles(Long userId);
}
最后,在Java代碼中調用這個方法來獲取查詢結果:
User user = userMapper.selectUserWithRoles(1);
System.out.println("User: " + user.getName());
System.out.println("Roles: " + user.getRoles());
這樣就可以在MyBatis中嵌套使用group_concat來獲取用戶的角色信息了。