@Select("select pf.fun_id,pf.functionCode,pf.functionName,#{role_id} as 'roleId',pf.funcUrl from ps_function pf inner join ps_role_premission prp on pf.fun_id = prp.fun_id where pf.parentId=0 and prp.role_id=#{roleId}")
@Results({
@Result(property = "childNodes",column = "{parentId = fun_id},{roleId = roleId}",many = @Many(select = "com.duan.mapper.DataMapper.findAllNodeChild"))
})
List<MenuNode> findALlNodeParent(int roleId);
@Select("select pf.fun_id,pf.functionCode,pf.functionName,pf.funcUrl from ps_function pf inner join ps_role_premission prp on pf.fun_id = prp.fun_id where pf.parentId=#{parentId} and prp.role_id=#{roleId}")
List<MenuNode> findAllNodeChild(@Param("parentId") int parentId,@Param("roleId") int roleId);
将一对多的column格式转换成{},{},{}
官方文档也是这样说的
格式就是param = column 前是我们参数 需要的 后是sql执行后的字段 提供的
假设上面的语句不能返回roleId(我们传入的参数),但是我们下面却需要roleId
(int roleId);
那么我们可以
#{role_id} as 'roleId'
起个别名 然后在column里面设置好 用@many也是可以访问的
注意写好@param