createSQLQuery時,addScalar的應用

 

 

問題起因:

 

         拋了異常:nested exception is org.hibernate.PropertyNotFoundException: Could not find setter for YEARMONTH on class

 

         對應的Model裏確實沒有屬性YEARMONTH 不過名爲yearMonth的屬性。

         對應的查詢sql "        select  a.month_id  as  yearMonth, "

         用這樣的方式設置了ResultTransformer q.setResultTransformer(new AliasToBeanResultTransformer(StatInfoForApply.class));

 

 

暫時繞過去:

         換了ResultTransformer q.setResultTransformer(new AliasToEntityMapResultTransformer());

         再加形如result.setYearMonth(((BigDecimal)map.get("YEARMONTH")).longValue());的手動轉換。

        

 

回過頭來找原因:

         createSQLQuery後,設置了AliasToBeanResultTransformerResultTransformer,要調用addScalar方法,加了addScalar方法後,跑通了。

 

接下來的追問:

         addScalar後,對結果集的解析有什麼影響?

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章