Skip,

I think that Scott already answered to your question... by the way:

in most cases the relation name is just the name of the related entity name: in your example "PaymentMethod". Sometimes there are more than one fields in the same entity that are related to the same entity. In this situation, in the entity definition you have to specify a "title" attribute together with the rel-entity-name attribute.

Have a look, for example, to the relations from the ProductAssoc entity:

https://demo.hotwaxmedia.com/webtools/control/ViewRelations?entityName=ProductAssoc

as you can see, both "productId" and "productIdTo" are related to the same entity "Product", so here you have to specify a title prefix:

// ProductAssoc.productId --> Product.productId
producAssoc.getRelatedOne("MainProduct");

// ProductAssoc.productIdTo --> Product.productId
producAssoc.getRelatedOne("AssocProduct");

Jacopo


[EMAIL PROTECTED] wrote:
I asked this question yesterday, but got no response.  Is there someone out
there with entity engine knowledge?

I have this bit of code:

            GenericValue payment = delegator.findByPrimaryKey("Payment",
UtilMisc.toMap("paymentId", paymentId));
...
            GenericValue paymentMethod =
payment.getRelatedOne("PaymentMethod");

The javadoc for getRelatedOne sez:

Parameters:
    relationName - String containing the relation name which is the
combination of relation.title and relation.rel-entity-name as specified in
the entity XML definition file.

I did not quite understand this statement as it does not seem to make sense
in this context.  Is this parameter a concatination of "Payment" and
"Method" where Payment is the relation.title and Method is the
relation.rel-entity-name?

I kinda dont think so.  I looked in the entitydef file containg Payment and
found this:

      <relation type="one" fk-name="PAYMENT_PMETH"
rel-entity-name="PaymentMethod">
        <key-map field-name="paymentMethodId"/>
      </relation>

So, I am assuming that this particular getRelatedOne call is going to open
the PaymentMethod entity and find the related "paymentMethodId" record.

Is this correct?

Also, if I see a yyy.getRelatedOne(xxx), can I assume that xxx is the entity
name to look in and xxxId is the key name in xxx always?

Thanks

Skip


Reply via email to