在购物网站项目中首页需要展示前面一部分的品牌,在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”的错。