日期:2014-05-18  浏览次数:20637 次

HQL问题,应该非常简单,解决马上给分
为什么   下面的不能查询出来
  Query   q=session.createQuery( "from   User   where   username=? ");
    q.setString(0,username);
    list   =   q.list();                      
tx.commit();

Query   q=session.createQuery( "from   User ");
    list   =   q.list();                      
tx.commit();



------解决方案--------------------
下面的就可以查询出结果,不知道原因
------解决方案--------------------
String hql= "from User user where user.username=:username ";
Query query=session.createQuery(hql);
query.serParameter( "username ",username);


用spring可以写成这样
String hql= "from Admin admin where admin.username=? ";
List user=hibernateTemplate.find(hql,username);
------解决方案--------------------
Query q=session.createQuery( "from User where username=? ");
q.setString(0,username);
list = q.list();
你可以试试下面的方法
Query q=session.createQuery( "from User where username=? ");
q.setParamter(0,username);
list = q.list();
或者
Query query = session.createQuery( "from User where username=:name ");
query.setParamter( "name ",username);
list = query.list();
还有.检查一下你的映射类中的字段username是不是userName
------解决方案--------------------
Query query = session.createQuery( "from User where username=:name ");
query.setParamter( "name ",username);
list = query.list();
还有建议LZ查询的话就不要用事务了。