当前位置: 代码迷 >> SQL >> createSQLQuery时,addScalar的运用
  详细解决方案

createSQLQuery时,addScalar的运用

热度:62   发布时间:2016-05-05 13:07:22.0
createSQLQuery时,addScalar的应用

?

?

问题起因:

?

???????? 抛了异常:nestedexception is org.hibernate.PropertyNotFoundException: Could not find setter forYEARMONTH on class

?

???????? 对应的Model里确实没有属性YEARMONTH 不过名为yearMonth的属性。

???????? 对应的查询sql "??????? select ?a.month_id?as? yearMonth, "

???????? 用这样的方式设置了ResultTransformer q.setResultTransformer(newAliasToBeanResultTransformer(StatInfoForApply.class));

?

?

暂时绕过去:

???????? 换了ResultTransformer q.setResultTransformer(newAliasToEntityMapResultTransformer());

???????? 再加形如result.setYearMonth(((BigDecimal)map.get("YEARMONTH")).longValue());的手动转换。

????????

?

回过头来找原因:

???????? createSQLQuery后,设置了AliasToBeanResultTransformerResultTransformer,要调用addScalar方法,加了addScalar方法后,跑通了。

?

接下来的追问:

???????? addScalar后,对结果集的解析有什么影响?

?