mybatis collection 多层嵌套 不可以使用columnPrefix=指定统一别名,不然对应不上 踩坑记录
原始的
<!--角色权限-->
<resultMap type="com.wuyu.store.sys.entity.vo.RoleList" id="RoleListResultMap">
<id column="role_id" property="roleId" jdbcType="BIGINT"/>
<result column="role_name" property="roleName" jdbcType="VARCHAR"/>
<collection property="menuList" columnPrefix="m_" ofType="com.wuyu.store.sys.entity.Menu">
<id column="menu_id" property="menuId" jdbcType="BIGINT" />
<result column="menu_name" property="menuName" jdbcType="VARCHAR" />
<result column="is_submenu" property="isSubmenu" jdbcType="TINYINT" />
<result column="superior_menu_id" property="superiorMenuId" jdbcType="BIGINT" />
<result column="menu_url" property="menuUrl" jdbcType="VARCHAR" />
<result column="menu_icon" property="menuIcon" jdbcType="VARCHAR" />
</collection>
</resultMap>
<!--用户基础信息-->
<resultMap type="com.wuyu.store.sys.entity.vo.UserInfo" id="UserInfoResultDetailMap" >
<id column="user_id" property="userId" jdbcType="BIGINT"/>
<result column="user_name" property="userName" jdbcType="VARCHAR"/>
<result column="account" property="account" jdbcType="VARCHAR"/>
<result column="money" property="money" jdbcType="DECIMAL"/>
<result column="user_live_id" property="userLiveId" jdbcType="BIGINT"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="last_update_time" property="lastUpdateTime" jdbcType="TIMESTAMP"/>
<result column="version" property="version" jdbcType="INTEGER"/>
<result column="password" property="password" jdbcType="VARCHAR"/>
<result column="state" property="state" jdbcType="VARCHAR"/>
<collection property="roleList" columnPrefix="r_" resultMap="RoleListResultMap">
</collection>
</resultMap>
改过的
<!--角色权限-->
<resultMap type="com.wuyu.store.sys.entity.vo.RoleList" id="RoleListResultMap">
<id column="role_id" property="roleId" jdbcType="BIGINT"/>
<result column="role_name" property="roleName" jdbcType="VARCHAR"/>
<collection property="menuList" ofType="com.wuyu.store.sys.entity.Menu">
<id column="menu_id" property="menuId" jdbcType="BIGINT" />
<result column="menu_name" property="menuName" jdbcType="VARCHAR" />
<result column="is_submenu" property="isSubmenu" jdbcType="TINYINT" />
<result column="superior_menu_id" property="superiorMenuId" jdbcType="BIGINT" />
<result column="menu_url" property="menuUrl" jdbcType="VARCHAR" />
<result column="menu_icon" property="menuIcon" jdbcType="VARCHAR" />
</collection>
</resultMap>
<!--用户基础信息-->
<resultMap type="com.wuyu.store.sys.entity.vo.UserInfo" id="UserInfoResultDetailMap" >
<id column="user_id" property="userId" jdbcType="BIGINT"/>
<result column="user_name" property="userName" jdbcType="VARCHAR"/>
<result column="account" property="account" jdbcType="VARCHAR"/>
<result column="money" property="money" jdbcType="DECIMAL"/>
<result column="user_live_id" property="userLiveId" jdbcType="BIGINT"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="last_update_time" property="lastUpdateTime" jdbcType="TIMESTAMP"/>
<result column="version" property="version" jdbcType="INTEGER"/>
<result column="password" property="password" jdbcType="VARCHAR"/>
<result column="state" property="state" jdbcType="VARCHAR"/>
<collection property="roleList" resultMap="RoleListResultMap">
</collection>
</resultMap>
链接查询必须查询id不然会报错
Expected one result (or null) to be returned by selectOne(),but found: