SQLQuery 空指针

做查询时需要用到一个比较复杂的sql,采用SQLQuery,query.list();报了空指针。debug发现query非空。将sql简化到最简单的形式,依然。突然发现query.addEntity(XXX);的XXX里的字段有几个是通过formula查询出来方便显示的。去掉query.addEntity();,错误消除。SQLQuery在查询时对于formula字段不能正确的处理,而且报出的错误为nullpoint,这里很假。SQLQueryquery=sess.createSQLQuery(sql);这段代码在写的时候其实是没有formula的属性对应的字段的。可以选择更改sql,将formula的字段包装进去,然后在封装到对象里。或者不要写query.addEntity(),即不需要自动封装成对象,而是以数组的形式。

相关推荐