【问题标题】:How to get data in ofbiz data model when just had partyID?刚刚有partyID时如何在ofbiz数据模型中获取数据?
【发布时间】:2014-03-01 02:28:20
【问题描述】:

我正在使用 ofbiz 框架并研究数据建模。但是当我刚刚拥有partyID 时,我对从实体获取数据感到困惑。

当我知道一个partyID 后,我可以在party 表中查询得到Party_type_id。然后,我使用此 Party_type_id 在 party_type 处查询以获取派对类型,例如 PERSON 或 PARTY_GROUP。但是,我怎样才能准确地去 PERSON 或 PARTY_GROUP 获取他们的个人信息呢?因为我没有显示party_type 和表名(PERSON 或 PARTY_GROUP)之间的任何关系。

【问题讨论】:

标签: datamodel ofbiz


【解决方案1】:

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

在 endityengine.xml 中添加以下视图实体。

    <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>

其中将包含派对信息,包括名字、姓氏或组名(如果 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”查询数据库(以防您不知道查看实体)

【讨论】:

  • 谢谢!在​​ofbiz中我可以使用entityengine,对,很清楚。但是如果我用这个数据模型,不带ofbiz框架,我就不能用数据模型了?
  • 我想将此数据模型用于另一个项目。好伤心:(
【解决方案2】:

使用相同的party_id查询'person'表,得到party_type_id=PERSON的party信息

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的party信息

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'

【讨论】:

  • 表格名称有时与party_type_Id 不同?
  • 表的名称将始终与party_type_id 不同。你应该知道哪一方
  • 表的名称将始终与party_type_id 不同。您应该知道要在哪个表中查找特定的 party_type_id。
【解决方案3】:

您也可以尝试导航到 Application>Framework>EntityEngine 并检查所需的任何实体的 reln。它提供了相当全面的信息。很像外键连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    • 2016-06-30
    • 1970-01-01
    • 2021-07-31
    • 2013-11-14
    相关资源
    最近更新 更多