public SysManager getOneSysManager(String managerAccounts, String managerPwd)
{
SysManager sysmanager = null;
// String hql = " from SysManager A where A.managerAccounts=:managerAccounts and A.managerPwd=:managerPwd";
String hql = " from SysManager A where A.managerAccounts='admin' and A.managerPwd='E10ADC3949BA59AB'";
Query query = this.getSession().createQuery(hql);
//query.setString("managerAccounts", managerAccounts);
//query.setString("managerPwd", managerPwd);
List list = query.list();
if(list != null && list.size()>0)
{
sysmanager=(SysManager)list.get(0);
}
return sysmanager;
}部署到正式服务器上时如果采用注释的代码,则不返回任何结果,如果采用未注释的代码行,则返回正确的结果。
但本机的开发环境则无此现象,哪位解释一下为什么会这样啊?

解决方案 »

  1.   

    你将hebernate.cfg.xml<property name="show_sql">true</property> 然后采用注释的代码部署到正式服务器上 然后copy执行的查询语句到数据库里面去执行看能否查出来结果
      

  2.   

    晕 这个就诡异了 既然能查出结果来 后面的代码没问题 不可能不返回任何结果啊 你用debug跟下 看能进到 
    if(list != null && list.size()>0)
            {
                sysmanager=(SysManager)list.get(0);
            }里面去不
      

  3.   

    查询出来的list里的对象全部是null....
      

  4.   

    String hql = " from SysManager A where A.managerAccounts="+managerAccounts+" and A.managerPwd="+managerPwd;使用这种方式
      

  5.   

    可能是 SysManager 里面的tostring()方法返回的是null,你把tostring方法去掉看看
      

  6.   

    managerAccounts
    managerPwd确认一下这两个参数是否正确吧
      

  7.   


    这个肯定行不通啊,不允许使用拼接sql的方式。。
      

  8.   


    确定这两个参数是正确的
    我把这两个参数带过来的值放在打印出来的sql语句里面,是可以查出结果的。。
    各位能不能从其它的方面,比如数据库的编码等给点意见。
      

  9.   

     String hql = " from SysManager A where A.managerAccounts=':managerAccounts' and A.managerPwd=':managerPwd+'";
    试试看
      

  10.   

    改也不能只改这一句,这个现象在其它的地方都存在。
    再描述一下我们的环境开发环境是windows 运行正常。
    测试平台 是linux + mysql 5.0.13-rc + resin 3.2 运行正常
    正式平台 是linux + mysql 5.0.13-rc + resin 3.2 运行不正常测试服务器与生产服务器据实施人员讲是完全一致的。但现在的问题是我们在开发环境与测试服务器都能正常运行,但部署到正式服务器后,出现这个现象。。急死个人。不知道从哪方面下手了。
      

  11.   

    测试平台 是linux + mysql 5.0.13-rc + resin 3.2 运行正常 
    正式平台 是linux + mysql 5.0.13-rc + resin 3.2 运行不正常 
    太诡异了
      

  12.   

    String hql = " from SysManager A where A.managerAccounts=':managerAccounts' and A.managerPwd=':managerPwd+'"; 
    换成单引号应该就OK了。
      

  13.   

    Up java 超级群 :有时间大家共同交流 51177847
      

  14.   

    String hql = " from SysManager A where A.managerAccounts="+managerAccounts+" and A.managerPwd="+managerPwd+""; 
    這樣去試下看可以不……
      

  15.   

           dao 层没有问题,看看其他 细节 有问题吗?