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 是实体类的名称!!!!这个是重点!!!!!!!






posted on 2022-11-08 07:36  小目标青年  阅读(170)  评论(0编辑  收藏  举报