最近发现一个很不明所以的错误:java.sql.SQLException: Column '**' not found.
起因是:
List list = this.getHibernateTemplate().executeFind(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {System.out.println("***in");
String hql = "select count(*) from _trading_record t where t.itemId = '" + id + "' and t.zoneCode='" + zoneCode + "'";
SQLQuery query = session.createSQLQuery(hql);
query.addEntity("t", TradingRecord.class);
return query.list();
}
});
问题:
标红那句加上后,查询结果便必须包含TradingRecord实体类的所有属性,否则系统会认为返回缺失
解决:
去掉 query.addEntity("t", TradingRecord.class);