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