本帖最后由 mengzhongyueru 于 2009-09-05 20:45:26 编辑

解决方案 »

  1.   

    String queryString = "SELECT * FROM Wms_Export_Order o,WMS_BASE_GOODS  g,WMS_BASE_GOODS_STATUS s  WHERE o.EXPORT_GOODS_ID=g.GOODS_ID AND s.GOODS_STATUS_ID=O.EXPORT_GOODS_STATUS AND o.EXPORT_EXECUTE_FLAG='1'  and o.EXPORT_WAREHOUSE_ID=? AND o.EXPORT_DATE>=? AND o.EXPORT_DATE<=?";

    Query queryObject = getSession().createSQLQuery(queryString)
    .addEntity("exportOrder", WmsExportOrder.class).addEntity(
    "goods", WmsBaseGoods.class).addEntity("goodsStatus",WmsBaseGoodsStatus.class);
    queryObject.setLong(0, new Long(warehouseId));
    queryObject.setTimestamp(1, sqlD1);
    queryObject.setTimestamp(2, sqlD2);
    List list= queryObject.list();
    for (int i = 0; i < list.size(); i++) {
    Object[] objs = (Object[]) list.get(i);
    WmsImportOrder importOrder = (WmsImportOrder) objs[0];
    WmsBaseGoods goods = (WmsBaseGoods) objs[1];
    WmsBaseGoodsStatus goodsStatus=(WmsBaseGoodsStatus)objs[2];
    WmsImportNotify importNotify=(WmsImportNotify)objs[3];........
    }
    看看有没有帮助
      

  2.   

    "select a.*,b.deptname from comp a,dept b where a.compno=b.compno" 
    HQL==>select a, b.deptname from comp a inner join a.dept b
      

  3.   

    "select * from ( select a.*,b.deptname from comp a,dept b where a.compno=b.compno ) where rownum >= ?" 这是对的吗?
      

  4.   

    这是错的 下面这句sql是对的 可以再plsql里执行查处结果
    "select a.*,b.deptname from comp a,dept b where a.compno=b.compno"
    我用session执行 然后用hb设置好分页 就自动生成了这句
    "select * from ( select a.*,b.deptname from comp a,dept b where a.compno=b.compno ) where rownum >= ?"
    不过报oracle的执行错 直接在plsql里执行也报错 我开始怀疑者是hb的bug了……1楼的似乎有点懂了 就是吧query查出来的list当做类似rs的结果集对待啊 我本想还能自动插入单位实体类 看来要手动完成这一操作了~
    2楼的现在米办法测试 感谢咯 明天上班弄弄 弄好结贴~也更好答案或解释的朋友也希望赐教一下 :)
      

  5.   

     一楼的写的很详细了,用的sql语句来完成,并且返回Object[]对象数组后 在次转换为对象