这个问题可能出现在SSH项目的select或者update的时候。问题原因如下:
在做select的时候,
1.我们在写select的时候,经常会这么写String hql=“select *from XXX ”这是一个sql语句,而hibernate框架用的是HQL语句去操作,而我们在创建的hql其实是一个sql语句,这时可能就会出现这个问题,解决办法就是把sql语句改为标准的hql语句,把“select *from xxx”修改为“from xxx”.
2.如果已经修改,还是不行,那可能是我们输入的这个xxx和domain的实体名不一样。hibernate在做查询时是对domain做操作,而不是我们数据库的表名,比如,数据库有表manorwoman,而我们的domain是根据驼峰写的ManOrWoman,这个时候,如果在做查询时写的是“select * from manorwoman ”而不是“select * from ManOrWoman ”就可能会出现这个问题。
在做update操作时
由于在做update 操作时首先是要做select操作的,所以,如果hql语句不规范或者update对应的不是domain名称而是表名的话,也会出现这种报错。