2014-03-01 7 views
0

저는 ofbiz 프레임 워크와 연구 데이터 모델링을 사용하고 있습니다. 하지만 파티 ID가있을 때 엔티티에서 데이터를 가져 오는 것과 혼란 스럽습니다.partyID가있을 때 ofbiz 데이터 모델에서 데이터를 가져 오는 방법은 무엇입니까?

partyID를 알면 Party 테이블에서 질의하여 Party_type_id를 얻을 수 있습니다. 그런 다음이 Party_type_id를 사용하여 party_type을 쿼리하여 파티 유형 (예 : PERSON 또는 PARTY_GROUP)을 가져옵니다. 그렇다면 PERSON 또는 PARTY_GROUP으로 가서 개인 정보를 얻으려면 어떻게해야합니까? 나는 party_type과 테이블의 이름 (PERSON 또는 PARTY_GROUP) 사이에 어떤 관계도 보이지 않기 때문에.

+0

이 링크를 시도해보십시오. 그것은 나를 많이 도왔다. https://cwiki.apache.org/confluence/display/OFBIZ/Data+Model+Diagrams – Sattam

답변

1

viewEntity는 문제를 해결할 수 있다고 생각합니다.

endityengine.xml에 다음 view-entity를 추가하십시오. 이름, 성 또는 그룹 이름 (있는 경우 PartyType = 'PARTY_GROUP')와 PartyTypeId 포함 파티 정보가됩니다

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

.

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


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

참고 :이 테이블 'PartyInfo을'

+0

감사합니다!, ofbiz에서 엔텔 엔진을 사용할 수 있습니다. 그러나 프레임 워크 ofbiz없이이 데이터 모델을 사용하면 데이터 모델을 사용할 수 없습니까? – ThangNguyen

+0

예, view-entity는 entityengine 없이는 작동하지 않습니다. – Senthilmurugan

+0

이 데이터 모델을 다른 프로젝트에 사용하고 싶습니다. 슬프다 : ( – ThangNguyen

0

사용의 정보를 얻기 위해 테이블 ​​'사람'쿼리 같은 party_id (당신이보기 기업의 인식하지 못했을 경우에 대비)를 사용하여, 데이타베이스를 쿼리 할 수 ​​없습니다 party_type_id의 자 = 사람 인원 FROM PERSON

SELECT *를, 자 P WHERE p.PARTY_ID = pers.PARTY_ID 및 p.party_type_id = '사람의 AND pers.PARTY_ID ='당신의 자-ID '

동일한 party_id를 사용하여 'person'테이블을 쿼리하여 t의 파티 정보를 가져옵니다. 그는 = PARTY_GROUP PARTY_GROUP의 페이지로부터

SELECT *, 자 P party_type_id WHERE p.PARTY_ID = pg.PARTY_ID 및 p.party_type_id = 'PARTY_GROUP'AND pg.PARTY_ID이 = '당신의 자-ID'

+0

party_type_Id와 테이블의 이름이 같지 않음? – ThangNguyen

+0

테이블의 이름이 항상 party_type_id와 같지 않음 어느 파티인지 알고 있어야 함 – Visa

+0

테이블의 이름은 항상 party_type_id와 같지 않습니다. 특정 party_type_id를 찾을 표를 알아야합니다. – Visa

0

당신은 할 수있다 또한 Application> Framework> EntityEngine으로 이동하여 원하는 엔티티의 reln을 확인하십시오. 꽤 포괄적 인 정보를 제공합니다. 외래 키가 연결되는 것과 비슷합니다.