Emir,
On Fri, 25 Feb 2005 13:48:27 +0100, [EMAIL PROTECTED] wrote:
>
>>
>> Emir,
>>
>> On Fri, 25 Feb 2005 11:06:17 +0100, [EMAIL PROTECTED] wrote:
>>
>> >
>> >Werner,
>> >I have two different mappings.
>> >It's the problem with XML transient field and not JDO. The JDO
>> part seems to work fine.
>> >I would like to here from Keith.
>> I tend to disagree. FOr your code to work, the marshaller (during
>> marshalling) will call a getter method on your lazy-loaded object.
>
>But, the lazy-loaded object is marked transient in the XML mapping?! Why is it
>accessing it?
What does the field mapping for this field actually look like ?
>
>> And that's where teh
>> problem seems to be: if you are not within the original
>> transaction anymore, SingleProxy (the class managing lazy-loading
>> objects) will complain that it
>> does not have access to a valid transaction anymore.
>>
>> Is there a chance you could invoke Marshaller.marshall() before
>> committing/rolling back your transaction ?
>>
>Currently, it's not an option. Class is marshalled in the part of app that
>doesn't manage the JDO transactions and gets objects by another part of app
that's actually working with JDO.
>Anyway, this is not so important, because I've fixed my app to work as I
>desire, but I was just wondering why... :-)
We still need to get our head around on allowing lazy laoding for 'long'
transactions, i.e. outside the scope of the transaction where this has been
loaded. Have a look at existing bugs .. as I am sure there's one or two talking
about these things.
Werner
>
>
>
>> Werner
>>
>>
>> >Here's a pseudo code and explanation:
>> >1. products have items field. in JDO Mapping items are marked as
>> lazy-loaded for products.
>> >In the XML mapping file, I have this items field of products
>> marked as transient.
>> >when i try to do this:
>> >
>> >product = db.load(...);
>> >marshaller.marshall(product);
>> >
>> >I got exception that trans is not in progress - this is because
>> lazy-loading implementation (this Relational collection or
>> whatever) doesn't allow us to
>> iterate lazy-loaded fields out of transaction.
>> >
>> >Now, if I do this:
>> >
>> >product = db.load(...);
>> >product.setItems(null);
>> >marshaller.marshall(product);
>> >
>> >everything works fine.
>> >
>> >Later I can write a unit-test and submit a report to buzilla. I'm
>> almost sure that this is a bug on XML side, just want to here from
>> Keith.>
>> >Regards,
>> >Emir
>> >
>> >
>> >
>> >
>> >----- Original Message -----
>> >From: Werner Guttmann <[EMAIL PROTECTED]>
>> >Date: Friday, February 25, 2005 11:05 am
>> >Subject: Re: [castor-user] [XML] Why Castor iterates transient
>> collection field?
>> >
>> >>
>> >> Emir,
>> >>
>> >> can you please provide us with a short code sample that shows
>> us
>> >> what you are trying to do.
>> >>
>> >> In general, Castor JDO does not have support for transient
>> >> attributes as it stands right now. There's a bug (1210) out
>> there
>> >> that will (once finished) address
>> >> this problem, but I have not been able to finish this in time
>> for
>> >> the 0.9.6 release.
>> >>
>> >> Regards
>> >> Werner
>> >>
>> >> On Fri, 25 Feb 2005 10:00:56 +0100, [EMAIL PROTECTED] wrote:
>> >>
>> >> >
>> >> >Keith,
>> >> >I have a class which is a JDO and it has a collection field. I
>> >> load this class' objects from database using Castor JDO and
>> then
>> >> try to marshall it using
>> >> Castor XML. One of the fields in my class is a collection field
>> >> which is lazy loaded. When I marshall the class I don't need
>> this
>> >> field be marshalled, so I've
>> >> set it in XML mapping as transient. But, when I try to marshall
>> >> it, the Castor raises a Transaction not in progress! exception.
>> >> This is related to JDO's lazy
>> >> loading. When I setLazyLoadedCollection(null) prior to
>> marshalling
>> >> I got no expcetion.
>> >> >
>> >> >Why Castor tries to iterate this transient collection?
>> >> >
>> >> >Regards,
>> >> >Emir
>> >> >
>> >> >
>> >> >
>
>
>
>-----------------------------------------------------------
>If you wish to unsubscribe from this mailing, send mail to
>[EMAIL PROTECTED] with a subject of:
> unsubscribe castor-user
>
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-user