首先给大家看一下代码
这个是员工实体类
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查询出来的别名都是ename,和实体对应的ename,当然是相同的,你把sql查询出来起成em.ename 和em2.ename1 ,实体也写上两个一个ename,另一个ename1就不一样了。