SSH框架中hibernate 出现 user is not mapped 问题
在做SSH框架整合时,在进行DAO操作时。这里就只调用了chekUser()方法。运行时报
user is not mapped 错误 :
chekUser()方法如下:
public boolean chekUser(User user){
String hql="from user u where u.id=? and u.name=?";
Query query=getSession().createQuery(hql);
query.setInteger(0, user.getId());
query.setString(1, user.getName());
List list=query.list();
if(list.size()>0&&list!=null){return true;}
return false;
}
上面的语句出错时因为自己写了HQL的语句,其中我写的语句是:
String hql="from user u where u.id=? and u.name=?";
但是在HQL语句中表名应该是ORM映射的类名,而不是你在数据库中的表名。
所以将HQL语句中的user的表名改为User即可,改后如下:
String hql="from User u where u.id=? and u.name=?";
只要将表明换成ORM映射的类名就可以了
在次运行就不会报没有 xxx is not mapped的错了。
user is not mapped 错误 :
chekUser()方法如下:
public boolean chekUser(User user){
String hql="from user u where u.id=? and u.name=?";
Query query=getSession().createQuery(hql);
query.setInteger(0, user.getId());
query.setString(1, user.getName());
List list=query.list();
if(list.size()>0&&list!=null){return true;}
return false;
}
上面的语句出错时因为自己写了HQL的语句,其中我写的语句是:
String hql="from user u where u.id=? and u.name=?";
但是在HQL语句中表名应该是ORM映射的类名,而不是你在数据库中的表名。
所以将HQL语句中的user的表名改为User即可,改后如下:
String hql="from User u where u.id=? and u.name=?";
只要将表明换成ORM映射的类名就可以了
在次运行就不会报没有 xxx is not mapped的错了。