这些在Hibernate自带的文档上都有啊,在第17章,Native SQL查询,自己去看吧,一会说不清的

解决方案 »

  1.   

    可解决你的两个问题:
    Iterator results = sess.createQuery(
            "select cat.color, min(cat.birthdate), count(cat) from Cat cat " +
            "group by cat.color")
            .list()
            .iterator();while ( results.hasNext() ) {
        Object[] row = results.next();
        Color type = (Color) row[0];
        Date oldest = (Date) row[1];
        Integer count = (Integer) row[2];
        .....
    }
      

  2.   

    这种事情...其实用ibatis实现较好.
      

  3.   

    我是这么做的:
    1.创建一个视图,包含你需要的字段
    2.创建一个javabean,包含需要字段,要有包含这些字段的构造函数
    3.hsql:
    select new Xxx(obj1.f1 ,obj1.f1 ,obj1.f2,obj2.f2)from ...
      

  4.   

    谢谢各位支持,我参照 liuyxit(我不是你的上帝)的做法,做了一遍,成功了,但是感觉还是比较麻烦的一种解决办法:
      Iterator results = session.createQuery(
      "select sum(eg.jfjs) ,count(eg) from PsnChkPay eg where eg.hdxlh='2000986194'")
            .list()
            .iterator();
        
    while ( results.hasNext() ) {
    Object[]row =(Object[])results.next();
    java.math.BigDecimal type = (java.math.BigDecimal) row[0];
        Integer count = (Integer) row[1];
        System.out.print(type+" xxx "+count);
    } SQLQuery query=session.createSQLQuery(
        "SELECT  a.jfjs jfjs,b.dwmc dwmc FROM psn_chk_pay a , corporation b WHERE a.jfdwbh=b.cid and a.hdxlh='2000986194'");
    query.addScalar("jfjs",Hibernate.BIG_DECIMAL );
    query.addScalar("dwmc",Hibernate.STRING);
      results = query.list().iterator();
      
       while ( results.hasNext() ) {
    Object[]row =(Object[])results.next();
    java.math.BigDecimal type = (java.math.BigDecimal) row[0];
        String count = (String) row[1];
        System.out.print(type+" xxx "+count);
       }