表与表 一对多或者多对一 关联查询时 默认的映射规则不满足,就自定义映射规则。
规律:外键在哪儿,多方就在哪儿。
表t_department
 表t_employee
	表t_employee
 两个表的关联 t_department.manager_id = t_employee.id
两个表的关联 t_department.manager_id = t_employee.id
1.多对一例子:
准备2个表的domain
 /**
 * 部门实体对象
 */
@Data
public class Department {
    private Long id;
    //部门编号
    private String sn;
    //部门名称
    private String name;
    //部门状态  0删除,1正常
    private Integer state;
    //部门经理    t_department.manager_id = t_employee.id
    private Employee manager;
    //上级部门    t_department d   t_department p  d.parent_id = p.id
    private Department parent;
}
/**
 * 部门经理实体对象
 */
@Data
public class Employee {
	private Long id;
  	private String username;
}
准备*mapper.xml中的sql语句
<!-- 
自定义映射规则:多对一      根据domain来写
多个部门对应一个上级部门
多个部门对应一个部门经理
-->
<resultMap id="deptLoadEmp"  type="Department"><!--type: 主表对应domain的类型-->
	<id column="id"  property="id" />
	<result column="sn"  property="sn" />
	<result column="name"  property="name" />
	<result column="state"  property="state" />
	<!--
	domain中关联其他表的属性
	property:对应domain中的 属性
	javatype:对应domain中属性的 类型
	 -->
	<association property="manager" javatype="Employee">
		<id column="eid" property="id"/>
  		<result column="eusername" property="username"/>
	</association>
	<association property="parent" javatype="Department">
		<id column="pid" property="id"/>
  		<result column="pname" property="name"/>
	</association>
</resultMap>
<select id="loadAllDepartments" resultMap="deptLoadEmp" >
select d.*,e.id eid,e.username eusername,p.id pid,p.name pname from t_department d 
left join t_employee e on d.manager_id=e.id 
left join t_department p on d.parent_id=p.id
</select>
2.一对多的例子
准备2张表
t_employee
<cltoin… ofType>
 
                   
                   
                   
                   本文详细介绍了在MyBatis中如何自定义映射规则,以处理表与表的一对多和多对一关联查询。通过示例展示了在Department和Employee实体类中如何配置,以及在mapper.xml中编写相应的SQL语句,确保查询结果正确映射到对应的实体对象。内容包括多对一查询中部门经理和上级部门的关联,以及一对多查询的处理方式。
本文详细介绍了在MyBatis中如何自定义映射规则,以处理表与表的一对多和多对一关联查询。通过示例展示了在Department和Employee实体类中如何配置,以及在mapper.xml中编写相应的SQL语句,确保查询结果正确映射到对应的实体对象。内容包括多对一查询中部门经理和上级部门的关联,以及一对多查询的处理方式。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   2458
					2458
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            