hibernate报org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException错误

本文解决了一个在Hibernate关联查询中出现的NonUniqueDiscoveredSqlAliasException错误,原因是两个表中有相同的列名导致。通过为重复的列取别名的方法解决了此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值