如果有partyID,如何在ofbiz数据模型中获取数据?

时间:2014-03-01 02:28:21

标签: datamodel ofbiz

我正在使用ofbiz框架并研究数据建模。但是当我遇到partyID时,我很难从实体获取数据。

当我知道partyID时,我可以在聚会桌查询以获取Party_type_id。然后,我使用此Party_type_id在party_type上查询以获取派对类型,例如PERSON或PARTY_GROUP。但是,我怎样才能真正去PERSON或PARTY_GROUP获取他们的个人信息?因为我没有在party_type和表名(PERSON或PARTY_GROUP)之间显示任何关系。

3 个答案:

答案 0 :(得分:1)

我认为viewEntity可以解决您的问题。

在endityengine.xml中添加以下view-entity。

    <view-entity entity-name="PartyInfo"
                 package-name="org.ofbiz.party"
                 title="View that combines Person, Paryt and PartyGroup">
  <member-entity entity-alias="P" entity-name="Party"/>
  <member-entity entity-alias="PG" entity-name="PartyGroup"/>
  <member-entity entity-alias="PER" entity-name="Person"/>
  <alias entity-alias="P" name="partyId"/>
  <alias entity-alias="PG" name="groupName"/>
  <alias entity-alias="PER" name="firstName"/>
  <alias entity-alias="PER" name="lastName"/>
  <alias entity-alias="P" name="partyTypeId"/>
  <view-link entity-alias="P" rel-entity-alias="PG" rel-optional="true">
    <key-map field-name="partyId"/>
  </view-link>
  <view-link entity-alias="P" rel-entity-alias="PER" rel-optional="true">
    <key-map field-name="partyId"/>
  </view-link>
</view-entity>

将包含firstName,lastName或GroupName(如果PartyType ='PARTY_GROUP')和PartyTypeId的参与方信息。

    EntityCondition partyCondition = EntityCondition.makeCondition(UtilMisc.toList(
                    EntityCondition.makeCondition("partyId", EntityOperator.EQUALS, prtyId)), EntityOperator.AND);


    List<GenericValue> partyDetails = delegator.findByCondition("PartyInfo", partyCondition, null, null);

注意:您无法使用此表'PartyInfo'查询数据库(如果您不了解View实体)

答案 1 :(得分:0)

使用相同的party_id查询表'person'以获取party_type_id = PERSON的派对信息

SELECT * FROM PERSON pers,PARTY p WHERE p.PARTY_ID = pers.PARTY_ID AND p.party_type_id ='PERSON'AND pers.PARTY_ID ='your-party-id'

使用相同的party_id查询表'person'以获取party_type_id = PARTY_GROUP

的派对信息

SELECT * FROM PARTY_GROUP pg,PARTY p WHERE p.PARTY_ID = pg.PARTY_ID AND p.party_type_id ='PARTY_GROUP'AND pg.PARTY_ID ='your-party-id'

答案 2 :(得分:0)

您也可以尝试导航到Application&gt; Framework&gt; EntityEngine,并检查您想要的任何实体的reln。它提供了非常全面的信息。就像外键连接一样。