hibernate 查询返回字段别名是表的属性名 映射问题

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

 

你可能感兴趣的:(db,java)