SSH项目,hibernate的查询操作出错org.hibernate.hql.ast.QuerySyntaxException
org.hibernate.hql.ast.QuerySyntaxException: unexpected token: * near line 1, column 8 [select *from Employee]
org.hibernate.hql.ast.QuerySyntaxException: employee is not mapped [from employee]
一.如果在调用HQL的时候查询数据库里面的字段,
例如: String hql=“select *from XXX(表名)”, 这个情况,因为hibernate框架用的是HQL语句去操作数据库,但是我们在创建传入的hql用的是sql语句,这时候就会报以下错误:
org.hibernate.hql.ast.QuerySyntaxException: unexpected token: * near line 1, column 8 [select *from Employee]
尽管设置sql方言,但是依然会出这样的错误,这时候最好直接把“ select *from XXX ”改为标准的hql格式:“ from XXX”
二.如果按照上面的方式已经把查询语句按照hql的格式编写了,若出现以下错误:
org.hibernate.hql.ast.QuerySyntaxException: employee is not mapped [from employee]
这时候是因为,
hibernate框架查询语句里面from后面的名称对应的不是数据库表里面的表名,而是当初建domain的实体类的的名称;因为hibernate框架的数据库字段都是在XXX.hbm.xml里面配置的,而这个XXX.hbm.xml配置文件里面:
例如:<class name="Employee" table="employee">
配置的实体类名是: Employee ,然后对应的表是: employee 。
所以我们在用hibernate框架的时候,查询就应该写成 “from Employee” 就可以解决问题了。
这里的Employee 是实体类的名称!!!!这个是重点!!!!!!!
这里的Employee 是实体类的名称!!!!这个是重点!!!!!!!
这里的Employee 是实体类的名称!!!!这个是重点!!!!!!!