跪求解答:javaweb中SSH框架dao层的session.createQuery(hql);不运行

publicclassUserDaoimplextendsHibernateDaoSupportimplementsUserDao{publicListuserlogin... public class UserDaoimpl extends HibernateDaoSupport implements UserDao {
public List userlogin(final Users users) {
System.out.println("dao");
String hql = "from Users as a where a.name=? and a.password=?";
System.out.println("-------------");
Session session = this.getSessionFactory().openSession();

if(session!=null){
System.out.println("Good!获取到了session"+
"打开的吗?"+session.isOpen()+" 连接的吗?"+
session.isConnected());
}else{
System.out.println("session获取失败");
}
System.out.println("000000000");
Query query = session.createQuery(hql);
System.out.println("111111111");
query.setString(0, users.getName());
query.setString(1, users.getPassword());
System.out.println("222222222");
List list = query.list();

return list;
这是dao层的代码

下面的后台打印
dao
-------------
Good!获取到了session打开的吗?true 连接的吗?true
000000000

Query query = session.createQuery(hql);这句为什么不执行呢???求大神解答
错误:
HTTP Status 500 -
java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
测试用:
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
UserBiz userBiz = (UserBiz)applicationContext.getBean("userbiz");
Users users = new Users();
users.setName("gq2");
users.setPassword("gq2");
List list = userBiz.login(users);

if (list.isEmpty()){
System.out.println("failure");
}else{
System.out.println("success");
}
}
后台打印是:
dao
-------------
Good!获取到了session打开的吗?true 连接的吗?true
000000000
111111111
222222222
success
展开
 我来答
Null_GGBond
2015-04-28 · 超过18用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:28.2万
展开全部
session.createQuery(hql) hql 你确定你写的hql 里面的是Users 是对象名不是表名

name,password是属性名不是列名?
更多追问追答
追问
import com.gq.entity.Users;
是类别不是表,name,password是属性名
追答
from Users  where name=? and password=?  hql换下试一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
藍色雷客
2015-04-28 · TA获得超过122个赞
知道小有建树答主
回答量:204
采纳率:0%
帮助的人:162万
展开全部
String hql = "from Users as a where a.name=? and a.password=?";
检查一下:

Users 指一个类别,而不是资料表
更多追问追答
追问
import com.gq.entity.Users;
是类别不是表
追答
String hql = "from Users as a where a.name=? and a.password=?";
改为
String hql = "from Users where name=? and password=?";
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式