Dima,
looks like "customerMembership" relationship should be to-many.
Andrus
<db-relationship name="customerMembership" source="tbl_customer"
target="tbl_membership" toDependentPK="true" toMany="false">
<db-attribute-pair source="CUSTOMER_ID" target="customer_id"/>
</db-relationship>
<db-relationship name="membershipCustomer"
source="tbl_membership" target="tbl_customer" toMany="false">
<db-attribute-pair source="customer_id" target="CUSTOMER_ID"/>
</db-relationship>
On Oct 5, 2006, at 5:59 AM, Dima Gritsenko wrote:
Hi, Sorry for messing up a thread, but had a glitch with
subscription, thus renewing the tread again for the subject. To:
Mike KienenbergerYes, Mike the record as there in the DB. Any other
suggestions?Thank you. Dima.
---------------------------------------------------------------Did
you verify that [Membership, customer_id=116080] exists in the
database at this moment in time?
On 9/16/06, Dima Gritsenko <[EMAIL PROTECTED]> wrote:
Hi,
We are having the following problem (mapping provided below):
Access to the property "joinDate" of the Memebership object using
jstl
<fmt:formatDate value="$
{custEmail.emailCustomer.customerMembership.joinDate}"
type="both"/>
Causes this exception:
2006-09-04 10:15:56 ApplicationDispatcher[/csr] Servlet.service()
for servlet jsp threw
exception
org.objectstyle.cayenne.FaultFailureException: [v.1.2 July 16
2006] Error resolving fault
for ObjectId: <ObjectId:Membership, customer_id=116080> and state
(hollow). Possible
cause - matching row is missing from the database.
at org.objectstyle.cayenne.access.DataContext.prepareForAccess
(DataContext.java:1851)
at org.objectstyle.cayenne.CayenneDataObject.readProperty
(CayenneDataObject.java:238)
at persistence.auto._Membership.getJoinDate(_Membership.java:59)
[..]
This is similar to the problem described here: http://
www.objectstyle.org/cayenne/lists/cayenne-user/2006/06/0147.html
but ours is different since both customer_id fields are PKs.
Mapping
<db-entity name="tbl_membership" catalog="main">
<db-attribute name="customer_id" type="INTEGER"
isPrimaryKey="true" isMandatory="true"
length="10"/>
<db-attribute name="order_id" type="INTEGER"
isPrimaryKey="true" isMandatory="true"
length="10"/>
<db-attribute name="join_date" type="TIMESTAMP" length="19"/>
<db-attribute name="last_renewal_date" type="TIMESTAMP"
length="19"/>
<db-attribute name="membership_type" type="CHAR"
length="50"/>
<db-attribute name="cancellation_date" type="TIMESTAMP"
length="19"/>
<db-attribute name="cancellation_reason" type="CHAR"
length="255"/>
<db-attribute name="expiration_date" type="TIMESTAMP"
length="19"/>
<db-attribute name="cancellation_number" type="CHAR"
length="50"/>
</db-entity>
<db-entity name="tbl_customer" catalog="main">
<db-attribute name="CUSTOMER_ID" type="INTEGER"
isPrimaryKey="true" isMandatory="true"
isGenerated="true" length="10"/>
<db-attribute name="BRAND_ID" type="INTEGER" length="10"/>
<db-attribute name="FIRST_NAME" type="VARCHAR" length="50"/>
<db-attribute name="MIDDLE_NAME" type="VARCHAR" length="50"/>
<db-attribute name="LAST_NAME" type="VARCHAR" length="50"/>
<db-attribute name="LOGIN_NAME" type="VARCHAR" length="50"/>
<db-attribute name="LOGIN_PASSWORD" type="VARCHAR"
length="50"/>
<db-attribute name="SESSIONS_COUNT" type="INTEGER"
length="10"/>
</db-entity>
<db-relationship name="customerMembership"
source="tbl_customer" target="tbl_membership"
toDependentPK="true" toMany="false">
<db-attribute-pair source="CUSTOMER_ID"
target="customer_id"/>
</db-relationship>
<db-relationship name="membershipCustomer"
source="tbl_membership" target="tbl_customer"
toMany="false">
<db-attribute-pair source="customer_id"
target="CUSTOMER_ID"/>
</db-relationship>
Thank you.
Dima.