Hibernate进行Dao操作时,只调用了isUser()方法,运行时报错为“userinfo is not mapped”;
以下为isUser()的方法:
public boolean isUser(Userinfo user){
boolean flag=false;
Configuration cf=new Configuration();
SessionFactory sf = cf.configure().buildSessionFactory();
Session s = sf.openSession();
String hql="from userinfo as u where u.username=:name and u.userpwd=:pwd";
Query q = s.createQuery(hql);
q.setString("name", user.getUsername());
q.setString("pwd", user.getUserpwd());
List list = q.list();
if(list.size()==0){
return flag;
}
else{
flag=true;
return flag;
}
调用这个方法之所以会报错,是因为我写的,hql语句。
我写的语句为:“from userinfo as u where u.username=:name and u.userpwd=:pwd”。
但事实hql语句中的表名应该时ORM的类名,而不是数据库中的表名。所以只要把语句中的“userinfo” 改为“Userinfo”,即将表名改为ORM的类名即可。再次运行就没有报“userinfo is not mapped”的错了。