本地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);