Oracle 加入冬眠

Oracle 加入冬眠,oracle,hibernate,join,hql,Oracle,Hibernate,Join,Hql,我有两个表具有父子关系 有栏目的聚会(PARTYSEQ,PARTYID…) PartyContact与列(PARTYCONTACTSEQ,PARTYSEQ,CONTACTTYPECD….) 场景:对于party的一条记录,PartyContact中可能没有记录或最多有3条记录 HQL中的所需输出:如果partyContact中不存在记录,则获取一个参与方(可使用join实现),但如果partyContact中存在多条记录,则仅显示其中一条。*\ 范例 参与方表/数据对象 1620个人sdfds

我有两个表具有父子关系

  • 有栏目的聚会(PARTYSEQ,PARTYID…)
  • PartyContact与列(PARTYCONTACTSEQ,PARTYSEQ,CONTACTTYPECD….)
  • 场景:对于party的一条记录,PartyContact中可能没有记录或最多有3条记录

    HQL中的所需输出:如果partyContact中不存在记录,则获取一个参与方(可使用join实现),但如果partyContact中存在多条记录,则仅显示其中一条。*\

    范例 参与方表/数据对象

    • 1620个人sdfdsf
    partyconact表/数据对象

    • 13321620住宅
    • 13331620办公室
    • 13341620移动
    问题是把这三个记录作为一个联系人联系起来。p> 我的问题是:

    SELECT partyDO.firstName1,partyContactDO.contactTypeCd  FROM PartyDO partyDO left outer join partyDO.listPartyContactDOList partyContactDO 
    where partyDO.id=1620 
    

    提前感谢

    您的问题是实体结构

    您可以通过两种方式获得结果:

    第一:

    在Party实体中添加公式,如下所示:

    <property name="partyContact" formula="
            (select pc.id from partycontact pc where pc.fk_party = id limit 1"
    type="string"></property>
    
    你会得到派对和第一次派对的联系

    第二点:

    在参与方实体中添加PartyContact集合

    因此,当您运行查询时:

    SELECT P FROM Party P
    
    SELECT P FROM Party P
    
    您可以获取PartyContact集合的第一个元素