1. 程式人生 > >hibernate本地sql查詢,相同列名的欄位

hibernate本地sql查詢,相同列名的欄位

比如你用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,所以只要把查詢方式變成一個函式或者表示式就行了。