FAQ
Hi,


I have two objects A and B which have an m:1 relation (it's used as a
1:1). I created a SelectQuery to get instances of A and added a
prefetch to B. After executing the query, A only has a toOneFault for
B, so when I access B it will execute another (relationship)query on
the database.

It doesn't matter if I use a DISJOINT or a JOINT prefetch, the result
is the same; all the necessary queries are executed and the datarows
for B are put in the cache, but the property on A isn't updated with
the prefetched B. Does anybody know how to explain (and fix ;-)) this?

Thanx,

Donald Vrakking

Search Discussions

  • Andrus Adamchik at Jul 9, 2009 at 7:00 am
    Let's look at the details of mapping of this relationship. Is it
    mapped as 1..1 or 1..N? If it is 1..1, is there a "to dep pk" flag set
    in one of the directions?

    Andrus

    On Jul 8, 2009, at 12:43 PM, Donald Vrakking wrote:

    Hi,


    I have two objects A and B which have an m:1 relation (it's used as
    a 1:1). I created a SelectQuery to get instances of A and added a
    prefetch to B. After executing the query, A only has a toOneFault
    for B, so when I access B it will execute another
    (relationship)query on the database.

    It doesn't matter if I use a DISJOINT or a JOINT prefetch, the
    result is the same; all the necessary queries are executed and the
    datarows for B are put in the cache, but the property on A isn't
    updated with the prefetched B. Does anybody know how to explain
    (and fix ;-)) this?

    Thanx,

    Donald Vrakking
  • Donald Vrakking at Jul 9, 2009 at 7:20 am
    It's an n..1 relation; entity A has a foreign key to the PK of B. The
    "to dep pk" flag is not set.

    Donald

    On 9 jul 2009, at 08:59, Andrus Adamchik wrote:

    Let's look at the details of mapping of this relationship. Is it
    mapped as 1..1 or 1..N? If it is 1..1, is there a "to dep pk" flag set
    in one of the directions?

    Andrus

    On Jul 8, 2009, at 12:43 PM, Donald Vrakking wrote:

    Hi,


    I have two objects A and B which have an m:1 relation (it's used as
    a 1:1). I created a SelectQuery to get instances of A and added a
    prefetch to B. After executing the query, A only has a toOneFault
    for B, so when I access B it will execute another
    (relationship)query on the database.

    It doesn't matter if I use a DISJOINT or a JOINT prefetch, the
    result is the same; all the necessary queries are executed and the
    datarows for B are put in the cache, but the property on A isn't
    updated with the prefetched B. Does anybody know how to explain
    (and fix ;-)) this?

    Thanx,

    Donald Vrakking
  • Andrus Adamchik at Jul 9, 2009 at 7:29 am
    Very odd. This is as vanilla as it can get... Can you copy-paste the
    relevant parts of the DataMap? I.e. Obj and Db entities definitions
    for both entities and relationships definitions.

    Andrus

    On Jul 9, 2009, at 10:20 AM, Donald Vrakking wrote:
    It's an n..1 relation; entity A has a foreign key to the PK of B.
    The "to dep pk" flag is not set.

    Donald

    On 9 jul 2009, at 08:59, Andrus Adamchik wrote:

    Let's look at the details of mapping of this relationship. Is it
    mapped as 1..1 or 1..N? If it is 1..1, is there a "to dep pk" flag
    set
    in one of the directions?

    Andrus

    On Jul 8, 2009, at 12:43 PM, Donald Vrakking wrote:

    Hi,


    I have two objects A and B which have an m:1 relation (it's used as
    a 1:1). I created a SelectQuery to get instances of A and added a
    prefetch to B. After executing the query, A only has a toOneFault
    for B, so when I access B it will execute another
    (relationship)query on the database.

    It doesn't matter if I use a DISJOINT or a JOINT prefetch, the
    result is the same; all the necessary queries are executed and the
    datarows for B are put in the cache, but the property on A isn't
    updated with the prefetched B. Does anybody know how to explain
    (and fix ;-)) this?

    Thanx,

    Donald Vrakking
  • Donald Vrakking at Jul 9, 2009 at 9:24 am
    There are to entities Supplier and Organisation. Both have a super
    entity SppSupplier and SppOrganisation, these are mapped to the
    tables. The query is done for Supplier(.class) and organisation is
    prefetched using toSppOrganisation.

    <db-entity name="SPP_SUPPLIER" schema="PRODUCTSUPPLIERUSER">
    ...attribs...
    <db-attribute name="ORGANISATION_ID" type="INTEGER" length="22"/>
    <db-attribute name="SUPPLIER_ID" type="INTEGER" isPrimaryKey="true"
    isMandatory="true" length="22"/>
    <db-key-generator>
    <db-generator-type>ORACLE</db-generator-type>
    <db-generator-name>seq_supplier</db-generator-name>
    <db-key-cache-size>1</db-key-cache-size>
    </db-key-generator>
    </db-entity>


    <db-entity name="SPP_ORGANISATION" schema="PRODUCTSUPPLIERUSER">
    ...attribs...
    <db-attribute name="ORGANISATION_ID" type="INTEGER"
    isPrimaryKey="true" isMandatory="true" length="22"/>
    <db-key-generator>
    <db-generator-type>ORACLE</db-generator-type>
    <db-generator-name>seq_organisation</db-generator-name>
    <db-key-cache-size>1</db-key-cache-size>
    </db-key-generator>
    </db-entity>

    <db-relationship name="toSppOrganisation" source="SPP_SUPPLIER"
    target="SPP_ORGANISATION" toMany="false">
    <db-attribute-pair source="ORGANISATION_ID" target="ORGANISATION_ID"/>
    </db-relationship>


    <obj-entity name="SppOrganisation"
    className="com.traserv.persist.productsupplier.SppOrganisation"
    dbEntityName="SPP_ORGANISATION"
    superClassName="com.traserv.persist.GenericDataObject">
    ...attribs...
    <obj-attribute name="name" type="java.lang.String" db-attribute-
    path="NAME"/>
    </obj-entity>

    <obj-entity name="Organisation" superEntityName="SppOrganisation"
    className="com.traserv.model.productsupplier.Organisation">
    </obj-entity>


    <obj-entity name="SppSupplier"
    className="com.traserv.persist.productsupplier.SppSupplier"
    dbEntityName="SPP_SUPPLIER"
    superClassName="com.traserv.persist.GenericDataObject">
    ...attribs...
    </obj-entity>

    <obj-entity name="Supplier" superEntityName="SppSupplier"
    className="com.traserv.model.productsupplier.Supplier">
    </obj-entity>

    <obj-relationship name="toSppOrganisation" source="SppSupplier"
    target="SppOrganisation" db-relationship-path="toSppOrganisation"/>











    On 9 jul 2009, at 09:29, Andrus Adamchik wrote:

    Very odd. This is as vanilla as it can get... Can you copy-paste the
    relevant parts of the DataMap? I.e. Obj and Db entities definitions
    for both entities and relationships definitions.

    Andrus

    On Jul 9, 2009, at 10:20 AM, Donald Vrakking wrote:
    It's an n..1 relation; entity A has a foreign key to the PK of B.
    The "to dep pk" flag is not set.

    Donald

    On 9 jul 2009, at 08:59, Andrus Adamchik wrote:

    Let's look at the details of mapping of this relationship. Is it
    mapped as 1..1 or 1..N? If it is 1..1, is there a "to dep pk" flag
    set
    in one of the directions?

    Andrus

    On Jul 8, 2009, at 12:43 PM, Donald Vrakking wrote:

    Hi,


    I have two objects A and B which have an m:1 relation (it's used as
    a 1:1). I created a SelectQuery to get instances of A and added a
    prefetch to B. After executing the query, A only has a toOneFault
    for B, so when I access B it will execute another
    (relationship)query on the database.

    It doesn't matter if I use a DISJOINT or a JOINT prefetch, the
    result is the same; all the necessary queries are executed and the
    datarows for B are put in the cache, but the property on A isn't
    updated with the prefetched B. Does anybody know how to explain
    (and fix ;-)) this?

    Thanx,

    Donald Vrakking
  • Andrus Adamchik at Jul 9, 2009 at 11:01 am
    Hmm... could be a bug related to inheritance presence. Before we dig
    any further, could you try it with Cayenne 3.0M6 (which should be
    mostly compatible). Is the problem still there?

    Andrus

    On Jul 9, 2009, at 12:23 PM, Donald Vrakking wrote:

    There are to entities Supplier and Organisation. Both have a super
    entity SppSupplier and SppOrganisation, these are mapped to the
    tables. The query is done for Supplier(.class) and organisation is
    prefetched using toSppOrganisation.

    <db-entity name="SPP_SUPPLIER" schema="PRODUCTSUPPLIERUSER">
    ...attribs...
    <db-attribute name="ORGANISATION_ID" type="INTEGER" length="22"/>
    <db-attribute name="SUPPLIER_ID" type="INTEGER"
    isPrimaryKey="true" isMandatory="true" length="22"/>
    <db-key-generator>
    <db-generator-type>ORACLE</db-generator-type>
    <db-generator-name>seq_supplier</db-generator-name>
    <db-key-cache-size>1</db-key-cache-size>
    </db-key-generator>
    </db-entity>


    <db-entity name="SPP_ORGANISATION" schema="PRODUCTSUPPLIERUSER">
    ...attribs...
    <db-attribute name="ORGANISATION_ID" type="INTEGER"
    isPrimaryKey="true" isMandatory="true" length="22"/>
    <db-key-generator>
    <db-generator-type>ORACLE</db-generator-type>
    <db-generator-name>seq_organisation</db-generator-name>
    <db-key-cache-size>1</db-key-cache-size>
    </db-key-generator>
    </db-entity>

    <db-relationship name="toSppOrganisation" source="SPP_SUPPLIER"
    target="SPP_ORGANISATION" toMany="false">
    <db-attribute-pair source="ORGANISATION_ID"
    target="ORGANISATION_ID"/>
    </db-relationship>


    <obj-entity name="SppOrganisation"
    className="com.traserv.persist.productsupplier.SppOrganisation"
    dbEntityName="SPP_ORGANISATION"
    superClassName="com.traserv.persist.GenericDataObject">
    ...attribs...
    <obj-attribute name="name" type="java.lang.String" db-attribute-
    path="NAME"/>
    </obj-entity>

    <obj-entity name="Organisation" superEntityName="SppOrganisation"
    className="com.traserv.model.productsupplier.Organisation">
    </obj-entity>


    <obj-entity name="SppSupplier"
    className="com.traserv.persist.productsupplier.SppSupplier"
    dbEntityName="SPP_SUPPLIER"
    superClassName="com.traserv.persist.GenericDataObject">
    ...attribs...
    </obj-entity>

    <obj-entity name="Supplier" superEntityName="SppSupplier"
    className="com.traserv.model.productsupplier.Supplier">
    </obj-entity>

    <obj-relationship name="toSppOrganisation" source="SppSupplier"
    target="SppOrganisation" db-relationship-path="toSppOrganisation"/>











    On 9 jul 2009, at 09:29, Andrus Adamchik wrote:

    Very odd. This is as vanilla as it can get... Can you copy-paste the
    relevant parts of the DataMap? I.e. Obj and Db entities definitions
    for both entities and relationships definitions.

    Andrus

    On Jul 9, 2009, at 10:20 AM, Donald Vrakking wrote:
    It's an n..1 relation; entity A has a foreign key to the PK of B.
    The "to dep pk" flag is not set.

    Donald

    On 9 jul 2009, at 08:59, Andrus Adamchik wrote:

    Let's look at the details of mapping of this relationship. Is it
    mapped as 1..1 or 1..N? If it is 1..1, is there a "to dep pk" flag
    set
    in one of the directions?

    Andrus

    On Jul 8, 2009, at 12:43 PM, Donald Vrakking wrote:

    Hi,


    I have two objects A and B which have an m:1 relation (it's used
    as
    a 1:1). I created a SelectQuery to get instances of A and added a
    prefetch to B. After executing the query, A only has a toOneFault
    for B, so when I access B it will execute another
    (relationship)query on the database.

    It doesn't matter if I use a DISJOINT or a JOINT prefetch, the
    result is the same; all the necessary queries are executed and the
    datarows for B are put in the cache, but the property on A isn't
    updated with the prefetched B. Does anybody know how to explain
    (and fix ;-)) this?

    Thanx,

    Donald Vrakking
  • Donald Vrakking at Jul 10, 2009 at 7:49 am
    It is indeed related to the inheritance. I created a small project
    with just these two classes to make experimenting a lot easier ;-)

    Without the subentities (Organisation and Supplier), everything works
    as it should with 2.0.4 and 3.0M6.

    With the subentities and 3.0M6, the problem remains only when using a
    disjoint prefetch.

    Donald

    On 9 jul 2009, at 13:00, Andrus Adamchik wrote:

    Hmm... could be a bug related to inheritance presence. Before we dig
    any further, could you try it with Cayenne 3.0M6 (which should be
    mostly compatible). Is the problem still there?

    Andrus

    On Jul 9, 2009, at 12:23 PM, Donald Vrakking wrote:

    There are to entities Supplier and Organisation. Both have a super
    entity SppSupplier and SppOrganisation, these are mapped to the
    tables. The query is done for Supplier(.class) and organisation is
    prefetched using toSppOrganisation.

    <db-entity name="SPP_SUPPLIER" schema="PRODUCTSUPPLIERUSER">
    ...attribs...
    <db-attribute name="ORGANISATION_ID" type="INTEGER" length="22"/>
    <db-attribute name="SUPPLIER_ID" type="INTEGER"
    isPrimaryKey="true" isMandatory="true" length="22"/>
    <db-key-generator>
    <db-generator-type>ORACLE</db-generator-type>
    <db-generator-name>seq_supplier</db-generator-name>
    <db-key-cache-size>1</db-key-cache-size>
    </db-key-generator>
    </db-entity>


    <db-entity name="SPP_ORGANISATION" schema="PRODUCTSUPPLIERUSER">
    ...attribs...
    <db-attribute name="ORGANISATION_ID" type="INTEGER"
    isPrimaryKey="true" isMandatory="true" length="22"/>
    <db-key-generator>
    <db-generator-type>ORACLE</db-generator-type>
    <db-generator-name>seq_organisation</db-generator-name>
    <db-key-cache-size>1</db-key-cache-size>
    </db-key-generator>
    </db-entity>

    <db-relationship name="toSppOrganisation" source="SPP_SUPPLIER"
    target="SPP_ORGANISATION" toMany="false">
    <db-attribute-pair source="ORGANISATION_ID"
    target="ORGANISATION_ID"/>
    </db-relationship>


    <obj-entity name="SppOrganisation"
    className="com.traserv.persist.productsupplier.SppOrganisation"
    dbEntityName="SPP_ORGANISATION"
    superClassName="com.traserv.persist.GenericDataObject">
    ...attribs...
    <obj-attribute name="name" type="java.lang.String" db-attribute-
    path="NAME"/>
    </obj-entity>

    <obj-entity name="Organisation" superEntityName="SppOrganisation"
    className="com.traserv.model.productsupplier.Organisation">
    </obj-entity>


    <obj-entity name="SppSupplier"
    className="com.traserv.persist.productsupplier.SppSupplier"
    dbEntityName="SPP_SUPPLIER"
    superClassName="com.traserv.persist.GenericDataObject">
    ...attribs...
    </obj-entity>

    <obj-entity name="Supplier" superEntityName="SppSupplier"
    className="com.traserv.model.productsupplier.Supplier">
    </obj-entity>

    <obj-relationship name="toSppOrganisation" source="SppSupplier"
    target="SppOrganisation" db-relationship-path="toSppOrganisation"/>











    On 9 jul 2009, at 09:29, Andrus Adamchik wrote:

    Very odd. This is as vanilla as it can get... Can you copy-paste the
    relevant parts of the DataMap? I.e. Obj and Db entities definitions
    for both entities and relationships definitions.

    Andrus

    On Jul 9, 2009, at 10:20 AM, Donald Vrakking wrote:
    It's an n..1 relation; entity A has a foreign key to the PK of B.
    The "to dep pk" flag is not set.

    Donald

    On 9 jul 2009, at 08:59, Andrus Adamchik wrote:

    Let's look at the details of mapping of this relationship. Is it
    mapped as 1..1 or 1..N? If it is 1..1, is there a "to dep pk" flag
    set
    in one of the directions?

    Andrus

    On Jul 8, 2009, at 12:43 PM, Donald Vrakking wrote:

    Hi,


    I have two objects A and B which have an m:1 relation (it's used
    as
    a 1:1). I created a SelectQuery to get instances of A and added a
    prefetch to B. After executing the query, A only has a toOneFault
    for B, so when I access B it will execute another
    (relationship)query on the database.

    It doesn't matter if I use a DISJOINT or a JOINT prefetch, the
    result is the same; all the necessary queries are executed and
    the
    datarows for B are put in the cache, but the property on A isn't
    updated with the prefetched B. Does anybody know how to explain
    (and fix ;-)) this?

    Thanx,

    Donald Vrakking
  • Andrus Adamchik at Jul 10, 2009 at 8:05 am
    Could you please log a bug report in Jira: http://issues.apache.org/jira/browse/CAY

    Thanks,
    Andrus
    On Jul 10, 2009, at 10:49 AM, Donald Vrakking wrote:

    It is indeed related to the inheritance. I created a small project
    with just these two classes to make experimenting a lot easier ;-)

    Without the subentities (Organisation and Supplier), everything
    works as it should with 2.0.4 and 3.0M6.

    With the subentities and 3.0M6, the problem remains only when using
    a disjoint prefetch.

    Donald

    On 9 jul 2009, at 13:00, Andrus Adamchik wrote:

    Hmm... could be a bug related to inheritance presence. Before we dig
    any further, could you try it with Cayenne 3.0M6 (which should be
    mostly compatible). Is the problem still there?

    Andrus

    On Jul 9, 2009, at 12:23 PM, Donald Vrakking wrote:

    There are to entities Supplier and Organisation. Both have a super
    entity SppSupplier and SppOrganisation, these are mapped to the
    tables. The query is done for Supplier(.class) and organisation is
    prefetched using toSppOrganisation.

    <db-entity name="SPP_SUPPLIER" schema="PRODUCTSUPPLIERUSER">
    ...attribs...
    <db-attribute name="ORGANISATION_ID" type="INTEGER" length="22"/>
    <db-attribute name="SUPPLIER_ID" type="INTEGER"
    isPrimaryKey="true" isMandatory="true" length="22"/>
    <db-key-generator>
    <db-generator-type>ORACLE</db-generator-type>
    <db-generator-name>seq_supplier</db-generator-name>
    <db-key-cache-size>1</db-key-cache-size>
    </db-key-generator>
    </db-entity>


    <db-entity name="SPP_ORGANISATION" schema="PRODUCTSUPPLIERUSER">
    ...attribs...
    <db-attribute name="ORGANISATION_ID" type="INTEGER"
    isPrimaryKey="true" isMandatory="true" length="22"/>
    <db-key-generator>
    <db-generator-type>ORACLE</db-generator-type>
    <db-generator-name>seq_organisation</db-generator-name>
    <db-key-cache-size>1</db-key-cache-size>
    </db-key-generator>
    </db-entity>

    <db-relationship name="toSppOrganisation" source="SPP_SUPPLIER"
    target="SPP_ORGANISATION" toMany="false">
    <db-attribute-pair source="ORGANISATION_ID"
    target="ORGANISATION_ID"/>
    </db-relationship>


    <obj-entity name="SppOrganisation"
    className="com.traserv.persist.productsupplier.SppOrganisation"
    dbEntityName="SPP_ORGANISATION"
    superClassName="com.traserv.persist.GenericDataObject">
    ...attribs...
    <obj-attribute name="name" type="java.lang.String" db-attribute-
    path="NAME"/>
    </obj-entity>

    <obj-entity name="Organisation" superEntityName="SppOrganisation"
    className="com.traserv.model.productsupplier.Organisation">
    </obj-entity>


    <obj-entity name="SppSupplier"
    className="com.traserv.persist.productsupplier.SppSupplier"
    dbEntityName="SPP_SUPPLIER"
    superClassName="com.traserv.persist.GenericDataObject">
    ...attribs...
    </obj-entity>

    <obj-entity name="Supplier" superEntityName="SppSupplier"
    className="com.traserv.model.productsupplier.Supplier">
    </obj-entity>

    <obj-relationship name="toSppOrganisation" source="SppSupplier"
    target="SppOrganisation" db-relationship-path="toSppOrganisation"/>











    On 9 jul 2009, at 09:29, Andrus Adamchik wrote:

    Very odd. This is as vanilla as it can get... Can you copy-paste
    the
    relevant parts of the DataMap? I.e. Obj and Db entities definitions
    for both entities and relationships definitions.

    Andrus

    On Jul 9, 2009, at 10:20 AM, Donald Vrakking wrote:
    It's an n..1 relation; entity A has a foreign key to the PK of B.
    The "to dep pk" flag is not set.

    Donald

    On 9 jul 2009, at 08:59, Andrus Adamchik wrote:

    Let's look at the details of mapping of this relationship. Is it
    mapped as 1..1 or 1..N? If it is 1..1, is there a "to dep pk"
    flag
    set
    in one of the directions?

    Andrus

    On Jul 8, 2009, at 12:43 PM, Donald Vrakking wrote:

    Hi,


    I have two objects A and B which have an m:1 relation (it's used
    as
    a 1:1). I created a SelectQuery to get instances of A and
    added a
    prefetch to B. After executing the query, A only has a
    toOneFault
    for B, so when I access B it will execute another
    (relationship)query on the database.

    It doesn't matter if I use a DISJOINT or a JOINT prefetch, the
    result is the same; all the necessary queries are executed and
    the
    datarows for B are put in the cache, but the property on A isn't
    updated with the prefetched B. Does anybody know how to explain
    (and fix ;-)) this?

    Thanx,

    Donald Vrakking
  • Donald Vrakking at Jul 10, 2009 at 10:47 am
    https://issues.apache.org/jira/browse/CAY-1250

    Thanks for the help,

    Donald

    On 10 jul 2009, at 10:05, Andrus Adamchik wrote:

    Could you please log a bug report in Jira: http://issues.apache.org/jira/browse/CAY

    Thanks,
    Andrus
    On Jul 10, 2009, at 10:49 AM, Donald Vrakking wrote:

    It is indeed related to the inheritance. I created a small project
    with just these two classes to make experimenting a lot easier ;-)

    Without the subentities (Organisation and Supplier), everything
    works as it should with 2.0.4 and 3.0M6.

    With the subentities and 3.0M6, the problem remains only when using
    a disjoint prefetch.

    Donald

    On 9 jul 2009, at 13:00, Andrus Adamchik wrote:

    Hmm... could be a bug related to inheritance presence. Before we dig
    any further, could you try it with Cayenne 3.0M6 (which should be
    mostly compatible). Is the problem still there?

    Andrus

    On Jul 9, 2009, at 12:23 PM, Donald Vrakking wrote:

    There are to entities Supplier and Organisation. Both have a super
    entity SppSupplier and SppOrganisation, these are mapped to the
    tables. The query is done for Supplier(.class) and organisation is
    prefetched using toSppOrganisation.

    <db-entity name="SPP_SUPPLIER" schema="PRODUCTSUPPLIERUSER">
    ...attribs...
    <db-attribute name="ORGANISATION_ID" type="INTEGER" length="22"/>
    <db-attribute name="SUPPLIER_ID" type="INTEGER"
    isPrimaryKey="true" isMandatory="true" length="22"/>
    <db-key-generator>
    <db-generator-type>ORACLE</db-generator-type>
    <db-generator-name>seq_supplier</db-generator-name>
    <db-key-cache-size>1</db-key-cache-size>
    </db-key-generator>
    </db-entity>


    <db-entity name="SPP_ORGANISATION" schema="PRODUCTSUPPLIERUSER">
    ...attribs...
    <db-attribute name="ORGANISATION_ID" type="INTEGER"
    isPrimaryKey="true" isMandatory="true" length="22"/>
    <db-key-generator>
    <db-generator-type>ORACLE</db-generator-type>
    <db-generator-name>seq_organisation</db-generator-name>
    <db-key-cache-size>1</db-key-cache-size>
    </db-key-generator>
    </db-entity>

    <db-relationship name="toSppOrganisation" source="SPP_SUPPLIER"
    target="SPP_ORGANISATION" toMany="false">
    <db-attribute-pair source="ORGANISATION_ID"
    target="ORGANISATION_ID"/>
    </db-relationship>


    <obj-entity name="SppOrganisation"
    className="com.traserv.persist.productsupplier.SppOrganisation"
    dbEntityName="SPP_ORGANISATION"
    superClassName="com.traserv.persist.GenericDataObject">
    ...attribs...
    <obj-attribute name="name" type="java.lang.String" db-attribute-
    path="NAME"/>
    </obj-entity>

    <obj-entity name="Organisation" superEntityName="SppOrganisation"
    className="com.traserv.model.productsupplier.Organisation">
    </obj-entity>


    <obj-entity name="SppSupplier"
    className="com.traserv.persist.productsupplier.SppSupplier"
    dbEntityName="SPP_SUPPLIER"
    superClassName="com.traserv.persist.GenericDataObject">
    ...attribs...
    </obj-entity>

    <obj-entity name="Supplier" superEntityName="SppSupplier"
    className="com.traserv.model.productsupplier.Supplier">
    </obj-entity>

    <obj-relationship name="toSppOrganisation" source="SppSupplier"
    target="SppOrganisation" db-relationship-path="toSppOrganisation"/>











    On 9 jul 2009, at 09:29, Andrus Adamchik wrote:

    Very odd. This is as vanilla as it can get... Can you copy-paste
    the
    relevant parts of the DataMap? I.e. Obj and Db entities
    definitions
    for both entities and relationships definitions.

    Andrus

    On Jul 9, 2009, at 10:20 AM, Donald Vrakking wrote:
    It's an n..1 relation; entity A has a foreign key to the PK of B.
    The "to dep pk" flag is not set.

    Donald

    On 9 jul 2009, at 08:59, Andrus Adamchik wrote:

    Let's look at the details of mapping of this relationship. Is it
    mapped as 1..1 or 1..N? If it is 1..1, is there a "to dep pk"
    flag
    set
    in one of the directions?

    Andrus

    On Jul 8, 2009, at 12:43 PM, Donald Vrakking wrote:

    Hi,


    I have two objects A and B which have an m:1 relation (it's
    used
    as
    a 1:1). I created a SelectQuery to get instances of A and
    added a
    prefetch to B. After executing the query, A only has a
    toOneFault
    for B, so when I access B it will execute another
    (relationship)query on the database.

    It doesn't matter if I use a DISJOINT or a JOINT prefetch, the
    result is the same; all the necessary queries are executed and
    the
    datarows for B are put in the cache, but the property on A
    isn't
    updated with the prefetched B. Does anybody know how to
    explain
    (and fix ;-)) this?

    Thanx,

    Donald Vrakking

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupuser @
categoriescayenne
postedJul 8, '09 at 7:23p
activeJul 10, '09 at 10:47a
posts9
users2
websitecayenne.apache.org

People

Translate

site design / logo © 2021 Grokbase