You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by ol...@ppi.de on 2003/12/01 14:08:58 UTC
RemovalAwareCollection, was: RE: does PersistenceBroker.getCollec
tionByQuery use the cache?
Hello Gong,
please start a new thread when you ask a new question.
> -----Original Message-----
> class myList and myEntry has a 1:n relationship
> each myList has a collection of myEntry(s)
[..]
> <collection-descriptor
> name="entries"
>
> collection-class=
> "org.apache.ojb.broker.util.collections.ManageableArrayList"
> element-class-ref="myEntry"
> auto-retrieve="true"
> auto-update="true"
> auto-delete="true"
> >
> <inverse-foreignkey field-ref="listId"/>
> </collection-descriptor>
>
> </class-descriptor>
[..]
> in this way, listPersisiter.store() and get() can automatically
> store and retrieve entry.
>
> but when i retrieve myList, and remove an entry from
> myList.entries, and store back, it can not automatically
> delete the entry in DB which have been removed from
> myList.entries.
If you want this behaviour, you must not use
the ManageableArrayList (as you explicitly do, see above)
but have to use the RemovalAwareCollection (which is
actually the default.)
Just remove the attribute collection-class from the
class-descriptor and try again.
BTW: this is a FAQ.
Olli
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org
Re: ask RemovalAwareCollection again
Posted by gong <go...@cal.sony.co.jp>.
thanks a lot!!!!
i do not load the data from DB first,
so this morning i could not get my anticipated result.
then i read through ojb-user mail List, and find some information indicate
that
i should initialize myList = new new RemovalAwareCollection();
so i change myList = new ArrayList(); to myList = new new
RemovalAwareCollection();
it works! that's great!!!!
Thanks for your help!
----- Original Message -----
From: "Thomas Mahler" <th...@web.de>
To: "OJB Users List" <oj...@db.apache.org>
Sent: Tuesday, December 02, 2003 3:51 PM
Subject: Re: ask RemovalAwareCollection again
> Hi Gong,
>
> You declare your collection attribute as java.util.List. That's fine!
>
> But then you have to be careful:
>
> If you *load* you collection from the db first, then OJB will
> automagically use a RemovalAwareCollection to fill your collection
> attribute.
>
> But if you do not load the collectio from the DB you have to make sure
> that you initialize the collection attribute with a
> RemovalAwareCollection instance.
>
> List mylist;
> myList = new RemovalAwareCollection();
>
> cheers,
> Thomas
>
>
>
> gong wrote:
> > I tried it, but it did not work.
> > the entry still remain in the database and can be retrieved.
> >
> > I used java.util.List for collection, but it fails.
> > Is that mean i should use
> > org.apache.ojb.broker.util.collections.RemovalAwareCollection in my java
> > code?
> >
> >
> >
> >
> > ----- Original Message -----
> > From: <ol...@ppi.de>
> > To: <oj...@db.apache.org>
> > Sent: Monday, December 01, 2003 10:08 PM
> > Subject: RemovalAwareCollection, was: RE: does
> > PersistenceBroker.getCollectionByQuery use the cache?
> >
> >
> >
> >>Hello Gong,
> >>
> >>please start a new thread when you ask a new question.
> >>
> >>
> >>>-----Original Message-----
> >>
> >>>class myList and myEntry has a 1:n relationship
> >>>each myList has a collection of myEntry(s)
> >>
> >>[..]
> >>
> >>
> >>> <collection-descriptor
> >>> name="entries"
> >>>
> >>>collection-class=
> >>>"org.apache.ojb.broker.util.collections.ManageableArrayList"
> >>> element-class-ref="myEntry"
> >>> auto-retrieve="true"
> >>> auto-update="true"
> >>> auto-delete="true"
> >>> >
> >>> <inverse-foreignkey field-ref="listId"/>
> >>> </collection-descriptor>
> >>>
> >>></class-descriptor>
> >>
> >>[..]
> >>
> >>
> >>>in this way, listPersisiter.store() and get() can automatically
> >>>store and retrieve entry.
> >>>
> >>>but when i retrieve myList, and remove an entry from
> >>>myList.entries, and store back, it can not automatically
> >>>delete the entry in DB which have been removed from
> >>>myList.entries.
> >>
> >>If you want this behaviour, you must not use
> >>the ManageableArrayList (as you explicitly do, see above)
> >>but have to use the RemovalAwareCollection (which is
> >>actually the default.)
> >>
> >>Just remove the attribute collection-class from the
> >>class-descriptor and try again.
> >>
> >>BTW: this is a FAQ.
> >>
> >>Olli
> >>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> >>For additional commands, e-mail: ojb-user-help@db.apache.org
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> > For additional commands, e-mail: ojb-user-help@db.apache.org
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
Re: ask RemovalAwareCollection again
Posted by Thomas Mahler <th...@web.de>.
Hi Gong,
You declare your collection attribute as java.util.List. That's fine!
But then you have to be careful:
If you *load* you collection from the db first, then OJB will
automagically use a RemovalAwareCollection to fill your collection
attribute.
But if you do not load the collectio from the DB you have to make sure
that you initialize the collection attribute with a
RemovalAwareCollection instance.
List mylist;
myList = new RemovalAwareCollection();
cheers,
Thomas
gong wrote:
> I tried it, but it did not work.
> the entry still remain in the database and can be retrieved.
>
> I used java.util.List for collection, but it fails.
> Is that mean i should use
> org.apache.ojb.broker.util.collections.RemovalAwareCollection in my java
> code?
>
>
>
>
> ----- Original Message -----
> From: <ol...@ppi.de>
> To: <oj...@db.apache.org>
> Sent: Monday, December 01, 2003 10:08 PM
> Subject: RemovalAwareCollection, was: RE: does
> PersistenceBroker.getCollectionByQuery use the cache?
>
>
>
>>Hello Gong,
>>
>>please start a new thread when you ask a new question.
>>
>>
>>>-----Original Message-----
>>
>>>class myList and myEntry has a 1:n relationship
>>>each myList has a collection of myEntry(s)
>>
>>[..]
>>
>>
>>> <collection-descriptor
>>> name="entries"
>>>
>>>collection-class=
>>>"org.apache.ojb.broker.util.collections.ManageableArrayList"
>>> element-class-ref="myEntry"
>>> auto-retrieve="true"
>>> auto-update="true"
>>> auto-delete="true"
>>> >
>>> <inverse-foreignkey field-ref="listId"/>
>>> </collection-descriptor>
>>>
>>></class-descriptor>
>>
>>[..]
>>
>>
>>>in this way, listPersisiter.store() and get() can automatically
>>>store and retrieve entry.
>>>
>>>but when i retrieve myList, and remove an entry from
>>>myList.entries, and store back, it can not automatically
>>>delete the entry in DB which have been removed from
>>>myList.entries.
>>
>>If you want this behaviour, you must not use
>>the ManageableArrayList (as you explicitly do, see above)
>>but have to use the RemovalAwareCollection (which is
>>actually the default.)
>>
>>Just remove the attribute collection-class from the
>>class-descriptor and try again.
>>
>>BTW: this is a FAQ.
>>
>>Olli
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>For additional commands, e-mail: ojb-user-help@db.apache.org
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org
ask RemovalAwareCollection again
Posted by gong <go...@cal.sony.co.jp>.
I tried it, but it did not work.
the entry still remain in the database and can be retrieved.
I used java.util.List for collection, but it fails.
Is that mean i should use
org.apache.ojb.broker.util.collections.RemovalAwareCollection in my java
code?
----- Original Message -----
From: <ol...@ppi.de>
To: <oj...@db.apache.org>
Sent: Monday, December 01, 2003 10:08 PM
Subject: RemovalAwareCollection, was: RE: does
PersistenceBroker.getCollectionByQuery use the cache?
> Hello Gong,
>
> please start a new thread when you ask a new question.
>
> > -----Original Message-----
>
> > class myList and myEntry has a 1:n relationship
> > each myList has a collection of myEntry(s)
>
> [..]
>
> > <collection-descriptor
> > name="entries"
> >
> > collection-class=
> > "org.apache.ojb.broker.util.collections.ManageableArrayList"
> > element-class-ref="myEntry"
> > auto-retrieve="true"
> > auto-update="true"
> > auto-delete="true"
> > >
> > <inverse-foreignkey field-ref="listId"/>
> > </collection-descriptor>
> >
> > </class-descriptor>
>
> [..]
>
> > in this way, listPersisiter.store() and get() can automatically
> > store and retrieve entry.
> >
> > but when i retrieve myList, and remove an entry from
> > myList.entries, and store back, it can not automatically
> > delete the entry in DB which have been removed from
> > myList.entries.
>
> If you want this behaviour, you must not use
> the ManageableArrayList (as you explicitly do, see above)
> but have to use the RemovalAwareCollection (which is
> actually the default.)
>
> Just remove the attribute collection-class from the
> class-descriptor and try again.
>
> BTW: this is a FAQ.
>
> Olli
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org