hibernate本地sql查询,相同列名的字段

本文讨论了使用Hibernate时出现的列名别名冲突问题,并解释了其原因及解决方法。通过将查询方式转化为函数或表达式,避免了列名Label的覆盖问题。

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

比如你用select u.name as uname,p.name as pname这样就会产生后面的值覆盖前面的值,我一般是这样用的select ifnull(u.name,''),ifnull(p.name,'')
我当时也查了很多资料都没有说这个问题是怎么回事,只有自己debug,发现应该是hibernate在处理列名的时候,用的是resultSetMetaData.getColumnLabel(),而当查询的只有一列的时候,比如u.name,p.name这些都是单列的查询,那么就算加了别名,ColumnLabel仍然是name,而不会是uname,pname,所以只要把查询方式变成一个函数或者表达式就行了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值