mybatis一个对象有相同类型的属性实体映射

User对象

package com.bean;

public class User {
	private int id;
	private Job firstJob;
	private Job secondJob;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public Job getFirstJob() {
		return firstJob;
	}
	public void setFirstJob(Job firstJob) {
		this.firstJob = firstJob;
	}
	public Job getSecondJob() {
		return secondJob;
	}
	public void setSecondJob(Job secondJob) {
		this.secondJob = secondJob;
	}
}

job对象

package com.bean;

public class Job {
	private int id;
	private String jobName;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getJobName() {
		return jobName;
	}
	public void setJobName(String jobName) {
		this.jobName = jobName;
	}
	
}

user的映射,当查询所有的时候直接将job内容查询出来

package com.mapper;

import java.util.List;

import com.bean.User;

public interface UserMapper {
	List<User> findAll();
}	
<?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.mapper.UserMapper" >
  <resultMap id="BaseResultMap" type="com.bean.User" >
    <id column="user_id" property="id" jdbcType="INTEGER" />
    <association property="firstJob" column="first_job_id" javaType="com.bean.Job" select="selectJobById"/>
    <association property="secondJob" column="second_job_id" javaType="com.bean.Job" select="selectJobById"/>
  </resultMap>
  <resultMap  id="jobMapper" type="com.bean.Job">
  <id column="job_id" property="id" jdbcType="INTEGER" />
  <result column="job_name" property="jobName" jdbcType="VARCHAR"/>
  </resultMap>
  <select id="selectJobById" parameterType="int" resultMap="jobMapper">
  select * from job where job_id=#{_parameter,jdbcType=INT}
  </select>
  
  <select id="findAll" resultMap="BaseResultMap">
  select * from user
  </select>
</mapper>

总结:

<association property="firstJob" column="first_job_id" javaType="com.bean.Job" select="selectJobById"/>

可以将该字段的值作为查询的条件

当然这样写主要是因为一个对象中有两个相同类型的属性,这样用原始的

<association property="secondJob" resultMap="jobMapper"/>映射会导致查询的结果数据不对,

 

 

只为自己学习一下。。。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值