org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: 29 near line 1, column
在购物网站项目中首页需要展示前面一部分的品牌,在Dao层的代码如下
/** * 获取指定数量的品牌信息 * @param count 指定数量 * @return 指定数量的品牌信息 */ @SuppressWarnings("unchecked") public List<Brand> getBrand(int count) { String hql = "select top "+count+" from Brand"; return (List<Brand>)getHibernateTemplate().find(hql); }
运行时报如下错误:
org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: 29 near line 1, column 12 [select top 29 from com.paixie.domain.Brand];
原来:在使用hibernate通过session操作数据库时,session根据的查询语句都是hql。如: session.createQuery("from Brand"); 它的语句中不存在select * ,所有如果将hql语句误写成sql语句,它是不认得*号的,才会报那样“unexpected token: * near line 1, column 8”的错。