我有三张表.员工表.职位表.部门表...员工对职位是多对一(无延迟加载)...职位对部门是多对一(无延迟加载)...
Criteria crt = session.createCriteria(SysEmpInfo.class);//查询员工
return crt.list();
结果控制台打出来的HQL语句
Hibernate: //职位查询
select
sysjobinfo0_.org_id as org2_1_,
sysjobinfo0_.job_id as job1_1_,
sysjobinfo0_.job_id as job1_191_0_,
sysjobinfo0_.org_id as org2_191_0_,
sysjobinfo0_.job_name as job3_191_0_,
sysjobinfo0_.job_kind as job4_191_0_,
sysjobinfo0_.job_pep_num as job5_191_0_,
sysjobinfo0_.job_pay as job6_191_0_,
sysjobinfo0_.job_des as job7_191_0_
from
hr.dbo.sys_job_info sysjobinfo0_
where
sysjobinfo0_.org_id=?
执行了四次..这是为什么啊?
我在员工hbm里面配置的职位查询是join查询啊HQL也打出来了
from
hr.dbo.sys_emp_info this_
left outer join
hr.dbo.sys_job_info sysjobinfo2_
on this_.job_id=sysjobinfo2_.job_id
left outer join
hr.dbo.sys_org_info sysorginfo3_
on sysjobinfo2_.org_id=sysorginfo3_.org_id
..但是Hibernate又根据org_id查询了四次职位信息.
Criteria crt = session.createCriteria(SysEmpInfo.class);//查询员工
return crt.list();
结果控制台打出来的HQL语句
Hibernate: //职位查询
select
sysjobinfo0_.org_id as org2_1_,
sysjobinfo0_.job_id as job1_1_,
sysjobinfo0_.job_id as job1_191_0_,
sysjobinfo0_.org_id as org2_191_0_,
sysjobinfo0_.job_name as job3_191_0_,
sysjobinfo0_.job_kind as job4_191_0_,
sysjobinfo0_.job_pep_num as job5_191_0_,
sysjobinfo0_.job_pay as job6_191_0_,
sysjobinfo0_.job_des as job7_191_0_
from
hr.dbo.sys_job_info sysjobinfo0_
where
sysjobinfo0_.org_id=?
执行了四次..这是为什么啊?
我在员工hbm里面配置的职位查询是join查询啊HQL也打出来了
from
hr.dbo.sys_emp_info this_
left outer join
hr.dbo.sys_job_info sysjobinfo2_
on this_.job_id=sysjobinfo2_.job_id
left outer join
hr.dbo.sys_org_info sysorginfo3_
on sysjobinfo2_.org_id=sysorginfo3_.org_id
..但是Hibernate又根据org_id查询了四次职位信息.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货