No, that you no tweak like what you're mentioned.



Thomas


-----Original Message-----
>From: Damon Maria [mailto:[EMAIL PROTECTED]]
>Sent: Thursday, October 11, 2001 1:48 PM
>To: [EMAIL PROTECTED]
>Subject: Re: [castor-dev] ClassMolder.create() with PERSISTANCECAPABLE
field
>
>OK, I just seem to be talking to myself here (first sign of madness?) but
I'll
>try again to illicit a response from someone.
>
>Would it be a quick fix in JDO to turn on a flag/option that if update() is
>called on an object that isn't in the cache then the object is loaded from
the
>database and castor updates it (without complaining that update() was
called on
>something loaded in this transaction. Since I'm basically having to do this
all
>manually at the moment, loading up the old object and then calling
old.setX(
>new.getX() ) for each property. And I'm sure castor with just a tweak or
two
>could do all this automagically for me.
>
>please, someone?
>
>Damon.
>
>Damon Maria wrote:
>>
>> If I do make the change described in my previous email
(getActualIdentity) then
>> the create still doesn't work since castor doesn't like the parent
>> UserInformation object not existing in the transaction already.
>>
>> The best answer would be to just call update on the UserInformation
object and
>> let castor handle it, but since this is running in a clustered
environment I've
>> turned caching off in the mapping file and therefore long-transactions
just
>> don't work.
>>
>> The reason long-transactions want the Timestampable interface and the
cache is
>> to perform dirty checking. But what if I *don't* want dirty checking.
Just let
>> me update it, please! Is there an easy way I can disable the dirty
checking for
>> long-transactions? I've done a lot of debugging inside castor, but I've
no idea
>> of how to do this, or more importantly, the implications of it.
>>
>> Otherwise, I'm stuffed basically. I can see no other way of writing to my
>> database using castor. But it's pretty damn good at reading!
>>
>> regards,
>> Damon.
>>
>> Damon Maria wrote:
>> >
>> > The situation:
>> >
>> > 1. In one transaction I load up a UserInformation object which has a
collection
>> > of UserSetting's.
>> > 2. After closing the transaction I create a new UserSetting and link it
up to
>> > the UserInformation previously loaded.
>> > 3. I start a new transaction and call database.create() on the new
UserSetting.
>> > 4. Eventually the call gets down to ClassMolder.create().
>> > 5. It retrieves the value for the field that links the UserSetting back
to it's
>> > parent UserInformation (i.e. it gets the UserInformation object, line
833).
>> > 6. It _tries_ to get the identity for this object but fails (gets null)
since it
>> > calls fieldClassMolder.getIdentity() and the UserInformation object
hasn't been
>> > loaded in this transaction (line 855).
>> >
>> > Should the fieldClassMolder.getIdentity() call instead be
getActualIdentity(),
>> > as this would correctly get the identity.
>> >
>> > Seperately, should I be declaring UserSettings as dependent on
UserInformation?
>> >
>> > This is a long transaction and the objects are not the original ones
returned by
>> > castor because this is being used in an EJB continer and passed back
and forth
>> > to the client.
>> >
>> > Usual stuff: I am using the latest CVS (as of yesterday), and my
mapping.xml:
>> >
>> >   <class name="nz.co.ontap.motorweb.jdo.UserInformation" identity="id"
>> > key-generator="global">
>> >     <map-to table="user_information" />
>> >     <cache-type type="none" />
>> >     <field name="id" type="integer">
>> >       <sql name="user_information_id" type="numeric" />
>> >     </field>
>> >     [...]
>> >     <field name="settings" type="nz.co.ontap.motorweb.jdo.UserSetting"
>> > collection="collection" />
>> >   </class>
>> >
>> >   <class name="nz.co.ontap.motorweb.jdo.UserSetting" identity="id"
>> > key-generator="global">
>> >     <map-to table="user_setting" />
>> >     <cache-type type="none" />
>> >     <field name="id" type="integer">
>> >       <sql name="user_setting_id" type="numeric" />
>> >     </field>
>> >     <field name="userInformation"
>> > type="nz.co.ontap.motorweb.jdo.UserInformation">
>> >       <sql name="user_information_id" />
>> >     </field>
>> >     <field name="stringValue" type="string">
>> >       <sql name="user_setting_string_value" type="varchar" />
>> >     </field>
>> >     <field name="typeId" type="integer">
>> >       <sql name="user_setting_type_id" type="numeric" />
>> >     </field>
>> >   </class>
>> >
>> > thanks in advance,
>> > Damon.
>>
>> -----------------------------------------------------------
>> If you wish to unsubscribe from this mailing, send mail to
>> [EMAIL PROTECTED] with a subject of:
>>         unsubscribe castor-dev
>
>--
>Strobe lights and blown speakers
>Fireworks and hurricanes
>
>-----------------------------------------------------------
>If you wish to unsubscribe from this mailing, send mail to
>[EMAIL PROTECTED] with a subject of:
>        unsubscribe castor-dev
>

----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-dev

Reply via email to