老师快帮帮我,mybatis的association关联查询不执行
在查询科室的时候我想用association关联查询,把科室相应的分类也查询出来,结果就是查询不出来,
然后我用log4j的DEBUG模式查看了一下,结果发现association关联查询根本就没有执行。。。。。。。
下面是相应的两个映射文件
===============================================================
DepartmentDao.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.4//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="hdm.dao.DepartmentDao">
<resultMap id="resultMap" type="Department">
<id property="id" column="id" javaType="Integer" />
<result property="categoryId" column="category_id" javaType="Integer" />
<result property="name" column="name" javaType="String" />
<result property="createTime" column="create_time" javaType="java.util.Date" />
<result property="updateTime" column="update_time" javaType="java.util.Date" />
<association property="category" column="categoryId" javaType="Category" select="hdm.dao.CategoryDao.selectById"/>
</resultMap>
<insert id="insert" parameterType="Department">
insert into dept (category_id,name,create_time,update_time)values(#{categoryId},#{name},#{createTime},#{updateTime})
</insert>
<delete id="delete" parameterType="Integer">
delete from dept where id=#{id}
</delete>
<select id="selectById" parameterType="Integer" resultMap="resultMap">
select * from dept where id=#{id}
</select>
<select id="selectAll" resultMap="resultMap">
select * from dept
</select>
<select id="selectByCategoryId" resultMap="resultMap" parameterType="Integer">
select * from dept where category_id=#{cid}
</select>
<update id="update" parameterType="Department">
update from dept set category_id=#{categoryId},name=#{name},update_time=#{updateTime} where id=#{id}
</update>
</mapper>
=================================================================================================
CategoryDao.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.4//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="hdm.dao.CategoryDao">
<resultMap id="resultMap" type="Category">
<id property="id" column="id" javaType="Integer" />
<result property="name" column="name" javaType="String"/>
<result property="createTime" column="create_time" javaType="java.util.Date" />
<result property="updateTime" column="update_time" javaType="java.util.Date" />
</resultMap>
<insert id="insert" parameterType="Category" useGeneratedKeys="true">
insert into category(name,create_time,update_time) values(#{name},#{createTime},#{updateTime})
</insert>
<delete id="delete" parameterType="Integer">
delete from category where id=#{id}
</delete>
<select id="selectAll" resultMap="resultMap">
select * from category
</select>
<select id="selectById" parameterType="Integer" resultMap="resultMap">
select * from category where id=#{id}
</select>
<update id="update" parameterType="Category">
update category set name=#{name},update_time=#{updateTime} where id=#{id}
</update>
</mapper>
正在回答
同学你好,
同学这里的关联条件写错了呢,这里要填写数据库字段,而同学之前数据库中查询出来的是category_id,同学将关的列写为category_id,测试一下
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
- 参与学习 人
- 提交作业 205 份
- 解答问题 4317 个
Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星