本帖最后由 samir007 于 2009-10-16 10:55:35 编辑

解决方案 »

  1.   

    WF_BINST   RE_OWNERSHIP  一对多 
    RE_OWNERSHIP    RE_OWNRSHPDTL  一对多 
    假设你设置了关联,即在一的一端有获得多的一端的setter/getter方法,只要在映射文件中的<set>(或其他集合)元素中设置lazy=false,在这种情况下,你可以通过得到一个WF_BINST对应的实例,然后通过这个实例的getter得到RE_OWNERSHIP对应的实例的集合,再遍历集合中的每个元素便可得到,用同样的方法得到RE_OWNRSHPDTL对应的实例集合,便可得到所有的字段或属性。
      

  2.   

    再加一点说明:
    WF_BINST表中的BATCHID 是用于标识某一批次业务的。如果是普通业务则为null.
    楼上的朋友所说的关联,当然可以获取数据,但达不到我想要的查询结果。
      

  3.   


    return hibernateSession.createSQLQuery("select * from EmolumentLeafletInfo emo where emo.payment_Id="+id).addEntity(EmolumentLeafletInfo.class).list();
    可以直接查询sql语句  不用hql也可以       给你个句子  别人给把sql语句写出来了 再套进去吧
      

  4.   

    Hibernate可以直接使用SQL语句,但关键是这SQL语句不知道如何写?
      

  5.   


    select a.OINSID,a.REGNUM,a.SNAME,c.OWNRSHPDTLID,c.STATUS 
    from RE_OWNERSHIP a,RE_OWNRSHPDTL b,RE_OWNERSHIP c
    where a.OINSID = b.OINSID and b.OWNERSHIP  = c.OWNRSHPID      
      

  6.   

    MYSQL5.1测试通过:mysql> select * from wf_binst;
    +--------+-------------+----------------+---------+
    | oinsid | regnum      | sname          | batchid |
    +--------+-------------+----------------+---------+
    | 431210 | 20091013002 | 商品房初始登记 |   29301 |
    | 431211 | 20091013003 | 商品房初始登记 |   29302 |
    | 431212 | 20091013004 | 买卖           |    NULL |
    +--------+-------------+----------------+---------+
    3 rows in set (0.00 sec)mysql> select * from re_ownership;
    +-----------+--------+---------+----------+
    | ownership | oinsid | gainway | roomprop |
    +-----------+--------+---------+----------+
    |     32341 | 431210 | A021001 | A023001  |
    |     32342 | 431210 | A021001 | A023002  |
    |     32343 | 431210 | A021002 | A023002  |
    |     32344 | 431211 | A021001 | A023002  |
    |     32345 | 431211 | A021001 | A023002  |
    |     32346 | 431212 | A021001 | A023002  |
    +-----------+--------+---------+----------+
    6 rows in set (0.00 sec)mysql> select * from re_ownrshpdtl;
    +--------------+-----------+--------+
    | ownrshpdtlid | ownrshpid | status |
    +--------------+-----------+--------+
    |       532131 |     32341 |      1 |
    |       532132 |     32341 |      1 |
    |       532133 |     32342 |      1 |
    |       532134 |     32342 |      1 |
    |       532135 |     32343 |      1 |
    |       532136 |     32344 |      0 |
    |       532137 |     32345 |      0 |
    |       532138 |     32346 |      2 |
    |       532139 |     32346 |      1 |
    +--------------+-----------+--------+
    9 rows in set (0.00 sec)mysql> select t1.oinsid,t1.regnum,t1.sname,t3.ownrshpdtlid,t3.status
        -> from wf_binst t1,re_ownership t2,re_ownrshpdtl t3
        -> where t1.oinsid=t2.oinsid and t2.ownership=t3.ownrshpid
        -> and t1.batchid is not null
        -> group by t1.oinsid
        -> union all
        -> select t1.oinsid,t1.regnum,t1.sname,t3.ownrshpdtlid,t3.status
        -> from wf_binst t1,re_ownership t2,re_ownrshpdtl t3
        -> where t1.oinsid=t2.oinsid and t2.ownership=t3.ownrshpid
        -> and t1.batchid is null;
    +--------+-------------+----------------+--------------+--------+
    | oinsid | regnum      | sname          | ownrshpdtlid | status |
    +--------+-------------+----------------+--------------+--------+
    | 431210 | 20091013002 | 商品房初始登记 |       532131 |      1 |
    | 431211 | 20091013003 | 商品房初始登记 |       532136 |      0 |
    | 431212 | 20091013004 | 买卖           |       532138 |      2 |
    | 431212 | 20091013004 | 买卖           |       532139 |      1 |
    +--------+-------------+----------------+--------------+--------+
    4 rows in set (0.00 sec)