mybatis中因为字段不一致,导致错误。
我这里是起别名操作造成的,需要统一关系映射配置result中的字段和select方法中的字段。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.rzy.mapper.MenuMapper">
<!--关系映射-->
<resultMap id="menuMap" type="com.rzy.pojo.MainMenu">
<id column="id" property="id"></id>
<result column="title" property="title"></result>
<result column="path" property="path"></result>
<collection property="sList" ofType="com.rzy.pojo.SubMenu">
<id column="sid" property="id"></id>
<result column="stitle" property="title"></result>
<result column="spath" property="path"></result>
</collection>
</resultMap>
<select id="getAllMenus" resultMap="menuMap">
SELECT
m.`id`,
m.`title`,
m.`path`,
s.`id` sid,
s.`mid`,
s.`path` spath,
s.`title` stitle
FROM
`mainmenu` m LEFT JOIN `submenu` s ON m.id = s.mid;
</select>
</mapper>
说明:
collection定义一个子集合对象返回
ofType(type):指定集合里面元素的类型
property属性设置集合的属性名
id指的是主键,
column是数据库中的列
property映射的是实体类中的属性
result是普通列(非主键)
如果给部分字段起了别名,如下图:
要和上面配置的resultMap中的字段一致(如下图所示):
我这里遇到的问题:字段不一致。