你用hibernate还自己学sql啊??

你那样的话最后用jdbc。

解决方案 »

  1.   

    Query query = session.createQuery(hql);改成
    Query query = session.createSQLQuery(hql);试试。
      

  2.   

    query.setInteger("hostTransStatus", hostTransStatus);query.setParameter()试试.
      

  3.   

    我检查了是resultList = query.list();这句执行不了
    为什么啊
    老大阿
      

  4.   

    我按照两位高手的方式改后报下面的错:
    ERROR - addEntity() or addScalar() must be called on a sql query before executing the query. [select strTermNum, strPan, cardType, amount, hostTransStatus, termTransStatus, strHostTsn, strTermTsn, dtOccur, settleCycle, fee, singStatus, cardTypeBasic  from TransLogDeposit where hostTransStatus=:hostTransStatus]at org.hibernate.impl.SQLQueryImpl.verifyParameters(SQLQueryImpl.java:183)
    为什么啊
      

  5.   

    to amazeur(无知) 
    好好学学hibernate吧,用hibernate不带表不写SQL,要不然怎么会有HQL这东西
      

  6.   

    我那个不是表阿
    是HQL语句
    freedom2001老大你会不会阿
      

  7.   

    TransLogDeposit 是表名还是实例化的类名称啊?
      

  8.   

    resultList = query.list();执行不了啊为什么
      

  9.   

    我知道是HQL,说顺嘴了,是对象别名。NND这东西还要说这么清楚。
    String hql ="select cc.strTermNum, cc.strPan, cc.cardType, cc.amount, cc.hostTransStatus, cc.termTransStatus, cc.strHostTsn, cc.strTermTsn, cc.dtOccur, cc.settleCycle, cc.fee, cc.singStatus, cc.cardTypeBasic  from TransLogDeposit as cc where cc.hostTransStatus=:hostTransStatus";
    改成这样试试
      

  10.   

    对应阿
    是不是我数据库中的字段和SQL中的不一致阿?数据库中多了个"i":ihostTransStatus
      

  11.   

    总之我认为是SQL转换器出的错。
      

  12.   

    hibernate.cfg.xml 发上来看看。
      

  13.   

    where hostTransStatus=:hostTransStatus";请问这个条件有什么意义??
      

  14.   

    List resultList = new ArrayList();
    ???
      

  15.   

    貌似query.list()返回的不是ArrayList型的,而是List型的。List resultList = new ArrayList();改成List resultList;试试。另外,你这样获得的List中每个元素都是一个数组Object[],其中Object[0]=strTermNum.......;Object[1]=strPan;下一个元素的Object[0]=strTermNum;Object[1]=strPan.........;List是由一组数组组成的,而不是TransLogDeposit类的对象,切记。
      

  16.   

    TransLogDeposit???是表名还是类名呀???
      

  17.   

    Query query = session.createSQLQuery(hql);
      

  18.   

    我都用了
    还是不行
    好象是缺少SQL的转换的驱动
      

  19.   

    我帮你改改:public final List resultList(int hostTransStatus)
    {
    List resultList = null;Session session = HibernateUtil.getSession();
    HibernateUtil.beginTransaction();
    try
    {
    String hql ="from TransLogDeposit where hostTransStatus=" + String.valueOf(hostTransStatus);
    Query query = session.createQuery(hql);
    resultList = query.list();
    HibernateUtil.commitTransaction();
    }
    catch (HibernateException err)
    {
    LoggerUtil.error(err);
    HibernateUtil.rollbackTransaction();
    }
    finally
    {
    HibernateUtil.closeSession();
    }
    return resultList;
    }