Stein,
Thanx for the suggestion.
I like the idea of just expiring the cache, if I get the duplicate ID
error. I am using a different table for every class type. I hope the
following is not too much info.
Steve
UserScenario --> WebResource ( one-to-many,
programmatically maintained)
WebResource --> WebResource ( one-to-many,
programmatically maintained)
WebResource --> FormData
(one-to-many)
WebResource --> ResponseHeader
(one-to-many)
WebResource --> RequestHeader
(one-to-many)
mapping.xml
---------------------------------------------------------------------------------------------
<key-generator name="HIGH-LOW">
<param name="table"
value="seq"/>
<param name="key-column"
value="seq_table_name"/>
<param name="value-column"
value="max_pk_value"/>
<param name="grab-size"
value="15"/>
</key-generator>
:
:
<class name="com.opendemand.jdo.UserScenario"
auto-complete="false" identity="userScenarioId"
key-generator="MAX">
<description>Default mapping for class
com.opendemand.jdo.UserScenario</description>
<map-to table="user_scenario"/>
<cache-type type="none" />
:
</class>
<class name="com.opendemand.jdo.WebResource"
auto-complete="false" identity="webResourceId" key-generator="HIGH-LOW"
>
<description>Default mapping for class
com.opendemand.jdo.WebResource</description>
<map-to table="web_resource"/>
<cache-type type="none" />
:
:
<field name="responseHeaders"
type="com.opendemand.jdo.ResponseHeader"
required="false"
direct="false" transient="false" collection="arraylist"
get-method="getResponseHeaders" set-method="setResponseHeaders"
lazy="false" >
<sql many-key="web_resource_id" dirty="ignore" />
</field>
<field name="requestHeaders"
type="com.opendemand.jdo.RequestHeader"
required="false" direct="false" transient="false"
collection="arraylist"
get-method="getRequestHeaders" set-method="setRequestHeaders"
lazy="false" >
<sql many-key="web_resource_id" dirty="ignore" />
</field>
<field name="formData" type="com.opendemand.jdo.FormData"
required="false" direct="false" transient="false"
collection="arraylist"
get-method="getFormData" set-method="setFormData"
>
<sql many-key="web_resource_id" dirty="ignore"
/>
</field>
</class>
<!-- same for ResponseHeader, FormData -->
<class name="com.opendemand.jdo.RequestHeader" auto-complete="false"
identity="id" key-generator="HIGH-LOW" depends="com.opendemand.jdo.WebResource"
update="false" >
<description>Default mapping for class
com.opendemand.jdo.RequestHeader</description>
<map-to table="request_header"/>
<cache-type type="none" />
:
</class>
----- Original Message -----
From: "Stein M. Hugubakken" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, April 26, 2004 2:18 PM
Subject: Re: [castor-dev] [JDO] Key generator --
Duplicated Identity is generated!
> Stephen Ince wrote:
> > It is just with HIGH-LOW, does any know of away to re-sync the cache.
> >
>
> What about expiring items from the cache?
>
> An example:
> db.expireCache(new Class[] { Person.class }, null);
>
> Is it alsways the same type that have problem with duplicate identity?
> What type of cache do you use for those out-of-sync?
>
> Stein
>
> -----------------------------------------------------------
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
> unsubscribe castor-dev
>
>