hibernate报org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException错误
百度查找的答案:
原因:关联查询的两个表有相同的列名,
Query须要使用别名来区分相同名称的列。
解决方法:两个表中相同的列,只去其中的一个就可以了
自己的问题:
查询结果中出现了两列同名的情况,给其中一列取别名;
出问题的sql语句(报错前没有eid)
select uu.id, uu.user_login_name, ee.id eid, ee.real_name, uu.state
from (select u.id, u.user_login_name, u.employee_id, u.state
from ims_ot_user u
where exists
(select eo.employee_id
from ims_rt_employee_organization eo
where exists
(select *
from (select t.id
from (select org.id,
oo.oo.super_organization_id
from ims_ot_organization org
left join ims_rt_organization oo
on org.id = oo.organization_id) t
start with t.id = '8a847c0b55ca7b730155cad5cd50001d'
CONNECT BY PRIOR t.id = t.super_organization_id) org1
where org1.id = eo.organization_id)
and eo.employee_id = u.employee_id)) uu
left join ims_ot_employee ee
on uu.employee_id = ee.id
Union
select uu.id, uu.user_login_name, ee.id eid, ee.real_name, uu.state
from (select u.id, u.user_login_name, u.employee_id, u.state
from ims_ot_user u
where exists (select eo.employee_id
from ims_rt_employee_organization eo
where exists (select *
from (select ro.super_organization_id
from ims_rt_organization ro
where ro.organization_id = '8a847c0b55ca7b730155cad5cd50001d') org1
where org1.super_organization_id =
eo.organization_id)
and eo.employee_id = u.employee_id)) uu
left join ims_ot_employee ee
on uu.employee_id = ee.id