我正在使用ofbiz框架并研究数据建模。但是当我遇到partyID时,我很难从实体获取数据。
当我知道partyID时,我可以在聚会桌查询以获取Party_type_id。然后,我使用此Party_type_id在party_type上查询以获取派对类型,例如PERSON或PARTY_GROUP。但是,我怎样才能真正去PERSON或PARTY_GROUP获取他们的个人信息?因为我没有在party_type和表名(PERSON或PARTY_GROUP)之间显示任何关系。
答案 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。它提供了非常全面的信息。就像外键连接一样。