本地sql:
String sql = select a.username as name from a left join b on a.id = b.a_id ;
如果别名name 是表中的属性字段,会报异常:Column 'username ' not found.
解决方法:
方法1.则在hibernate查询时要添加 addScalar("name")
Query q = getSession().createSQLQuery(sql).addScalar("name");
方法2:使用函数 IFNULL(a.username, '') as name
String sql = select IFNULL(a.username, '') as name from a left join b on a.id = b.a_id ;
Query q = getSession().createSQLQuery(sql);

本文探讨了在使用SQL左连接时遇到的别名字段异常问题,即'Column 'username 'not found.',并提供了两种解决方案:一是通过在Hibernate查询中添加addScalar方法;二是使用IFNULL函数来避免异常。
754





