Dto:class ChannelTree {Integer id,String name,Integer pid.........}ChannelDao 繼承BaseDao:public List<ChannelTree> generateTree() {String sql = "select id,name,ifnull(pid,0) pid from t_channel order by orders";List<ChannelTree> cts = this.queryBySQL(sql, ChannelTree.class, false);return cts;}BaseDao中的queryBySQL方法如下:public <N extends Object> List<N> queryBySQL(String sql, Object[] args,Map<String, Object> alias, Class<?> clz, boolean hasEntity) {sql=getOrderHql(sql);SQLQuery query=getSession().createSQLQuery(sql);setAlias(query, alias);setArgs(query, args);if(hasEntity){query.addEntity(clz);}else{query.setResultTransformer(Transformers.aliasToBean(clz));}return query.list();}MYSQL數(shù)據(jù)庫中pid有為空的記錄為什么執(zhí)行的時候會報org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of org.jy.cms.model.ChannelTree.pid如果把sql中的ifnull函數(shù)去掉則測試通過:String sql = "select id,name,pid from t_channel order by orders";
為什么執(zhí)行的時候會報如下的錯誤呢?
月關(guān)寶盒
2023-03-19 08:04:15