在xxxMapper中java
<select id="getClazz" parameterType="int" resultType="getClazzMap"> SELECT * FROM class c,teacher t WHERE c.tid = t.tid AND c.cid=#{id} </select> <resultMap type="Clazz" id="getClazzMap"> <id property="id" column="cid"/> <result property="name" column="cname"/> <!-- 關聯班級對應的teacher --> <association property="teacher" javaType="Teacher"> <id property="id" column="tid"/> <result property="name" column="tname"/> </association> </resultMap>
查各類資料發現,用到resultType,必須在mybatis的配置文件中進行別名申明該resultType屬於哪一個實體類:mybatis
<!-- 配置xxxMapper.xml中的實體類的別名 --> <typeAliases> <!-- 單個實體類配置別名 --> <typeAlias type="com.mlxs.mybatis.test1.User" alias="User"/> <typeAlias type="com.mlxs.mybatis.test1.Clazz" alias="getClassMap"/> <!-- 整個包配置,別名默認爲類名 推薦 --> <package name="com.mlxs.mybatis.bean"/> </typeAliases>
可是,其實我這上面用錯了,我真正要用的是resultMap,不是resultTypeapp
<select id="getClazz" parameterType="int" resultMap="getClazzMap"> SELECT * FROM class c,teacher t WHERE c.tid = t.tid AND c.cid=#{id} </select> <resultMap type="Clazz" id="getClazzMap"> <id property="id" column="cid"/> <result property="name" column="cname"/> <!-- 關聯班級對應的teacher --> <association property="teacher" javaType="Teacher"> <id property="id" column="tid"/> <result property="name" column="tname"/> </association> </resultMap>
這個在寫的時候要很是注意... ...spa