qq_30123089 2016-10-26 06:56 采纳率: 100%
浏览 909
已采纳

mybatis3.3.0 查询出现的问题

首先给大家看一下代码
这个是员工实体类

 public class Employee {
    private int employee_id;    //编号
    private int number;         //工号
    private String password;    //密码
    private String ename;       //姓名
    private Position position;  //职位
    private Deparment department;   //部门
    private String status;      //状态

报销单实体类

 public class Expense {

    private int expense_id;     //编号
    private Employee handler;   //报销单处理人
    private Employee creator;   //报销单创建人
    private Date time;          //报销单创建时间
    private String reason;      //报销单事由
    private int total;          //总金额
    private Stauts estauts;     //报销单状态

sql语句

 <select id="getExpenseByEmp" parameterType="Employee" resultMap="EmployeeMap">
        SELECT 
            ex.expense_id,em.ename,em2.ename
        FROM 
            expense ex left join employee em on ex.creator = em.employee_id
                       left join employee em2 on ex.handler = em2.employee_id
        WHERE
            em.employee_id = #{employee_id}
    </select>
        <resultMap type="Expense" id="EmployeeMap">
            <id property="expense_id" column="expense_id" />
            <association property="creator" column="creator" javaType="Employee" />
            <association property="handler" column="handler" javaType="Employee"/>
        </resultMap>

因为要用 报销单表连员工表 查询出 创建者和处理者 但是最后结果 创建者和处理者 都变成了同一个人
要不然都是创建者的名字 或者是处理者的名字
图片说明
图片说明

在数据库中运行sql语句的结果是这样的
实在找不出原因了,有没有大神来指点下! 新人求教!

  • 写回答

1条回答 默认 最新

  • 过_往 2016-10-26 09:37
    关注

    你sql查询出来的别名都是ename,和实体对应的ename,当然是相同的,你把sql查询出来起成em.ename 和em2.ename1 ,实体也写上两个一个ename,另一个ename1就不一样了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?