Sean, you are using collections correctly. The only time Castor needs
add/remove is when you are using lazy collections. The standard
get/set methods for collections are just fine.
On Tue, 19 Oct 2004 16:03:40 +0800, Sean Liang
<[EMAIL PROTECTED]> wrote:
> Correct. The release version 0.9.5.3 doesn't report that warning.
>
> Anyway, what is the standard way to use collection, setter, adder or whatever? Any
> good example?
>
> Sean
>
>
> ----- Original Message -----
> From: "Werner Guttmann" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Tuesday, October 19, 2004 3:42 PM
> Subject: Re: [castor-user] [JDO] Confusing warning of collection type
>
> >
> > Sean,
> >
> > we are currently discussing whether we should take back the warning about the
> > 'addable' property. But can you just confirm to me that you are building
> > the code yourself from the sources you checked out from the CVS repository.
> >
> > Werner
> >
> > On Tue, 19 Oct 2004 09:17:26 +0800, Sean Liang wrote:
> >
> >>You can find everything in the constructor of FieldMolder.
> >>
> >>The strange thing is, if there is a setter method, Castor will not check for
> >>adder method, and the _addable property will never be set to true. It's true
> >>that I can ignore the warnings, but it goes to log file with thousands of line...
> >>
> >>Moreover, in my previous code (without setter method), the exception
> >>only appears when rollback.
> >>
> >>Sean
> >>----- Original Message -----
> >>From: "Nick Stuart" <[EMAIL PROTECTED]>
> >>To: <[EMAIL PROTECTED]>
> >>Cc: "Castor-Dev" <[EMAIL PROTECTED]>
> >>Sent: Monday, October 18, 2004 9:04 PM
> >>Subject: Re: [castor-user] [JDO] Confusing warning of collection type
> >>
> >>
> >>>
> >>> The set/get methods are required for collections, so you are doing
> >>> that part right. As far as that addable warning goes, I would say
> >>> ignore it. I think that its spitting out even when it shouldn't and
> >>> I've been meaning to file a bug report about it. If its working as
> >>> expected to worry, if not give a holler.
> >>>
> >>> <!--- end meaningful message here --> :)
> >>>
> >>> The addable attribute is (or at least should be) taken care of if you
> >>> have two methods of type:
> >>> removeHighScore(HighScroe score)
> >>> and
> >>> addHighScore(HighScore score)
> >>> However, I have those methods in my classes but I still get the
> >>> warning. Go figure :-/ anyone else here perhaps know why or want to
> >>> set me straight on what I'm doing wrong with this. I know we have
> >>> discussed it before, but hey, its worth rehashing me thinks.
> >>>
> >>> -Nick
> >>>
> >>>
> >>> On Mon, 18 Oct 2004 12:16:05 +0800, Sean Liang
> >>> <[EMAIL PROTECTED]> wrote:
> >>>>
> >>>> Anyone who has the experience in using collection, please kindly take a look
> >>>> at my code and show me a way.
> >>>>
> >>>> ------------- part of mapping file -----------
> >>>> <class identity="id" key-generator="HIGH-LOW" name="model.Tournament">
> >>>> <map-to table="tournament" />
> >>>> <field name="id" type="integer">
> >>>> <sql name="id" type="integer" />
> >>>> </field>
> >>>> <field name="highScore" type="model.HighScore"
> >>>> collection="collection">
> >>>> <sql many-key="tournament" />
> >>>> </field>
> >>>> </class>
> >>>> <class identity="id" key-generator="HIGH-LOW" name="model.HighScore">
> >>>> <map-to table="highscore" />
> >>>> <field name="id" type="integer">
> >>>> <sql name="id" type="integer" />
> >>>> </field>
> >>>> <field name="score" type="double">
> >>>> <sql name="score" type="double" />
> >>>> </field>
> >>>> <field name="tournament" type="model.Tournament">
> >>>> <sql name="tournament" />
> >>>> </field>
> >>>> </class>
> >>>>
> >>>>
> >>>> ------------- part of Tournament.java -----------
> >>>> private Collection highScoreList = new ArrayList();
> >>>> public void addHighScore(HighScore highScore) {
> >>>> highScoreList.add(highScore);
> >>>> highScore.setTournament(this);
> >>>> }
> >>>> public Collection getHighScore() {
> >>>> return highScoreList;
> >>>> }
> >>>>
> >>>> It then gives me an exception:
> >>>> org.exolab.castor.jdo.DataObjectAccessException: no method to set value for
> >>>> field: model.HighScore in class: ClassMolder model.Tournament
> >>>> at org.exolab.castor.persist.FieldMolder.setValue(FieldMolder.java:347)
> >>>> at
> >>>> org.exolab.castor.persist.ClassMolder.revertObject(ClassMolder.java:2562)
> >>>> at org.exolab.castor.persist.LockEngine.revertObject(LockEngine.java:848)
> >>>> at
> >>>> org.exolab.castor.persist.TransactionContext.rollback(TransactionContext.java:1760)
> >>>> at
> >>>> org.exolab.castor.jdo.engine.DatabaseImpl.rollback(DatabaseImpl.java:569)
> >>>> ......
> >>>>
> >>>> It seems that the setter is required for the collection type? But I didn't
> >>>> find it in the Product.java of JDO example.
> >>>>
> >>>> After adding the setter method:
> >>>>
> >>>> ------------- part of Tournament.java ----------- public void
> >>>> setHighScore(Collection list) {
> >>>> highScoreList = list;
> >>>> }
> >>>>
> >>>> It tells me a warning this time:
> >>>> org.exolab.castor.persist.CollectionProxy$ColProxy add
> >>>> Warning: FieldMolder FieldMolder of
> >>>> model.Tournament.sethighScore(model.HighScore highScore) is not addable;
> >>>> collection needs to set for object type model.HighScore.
> >>>>
> >>>> I was confused, could anybody provide me a good practice of collection
> >>>> mapping in JDO?
> >>>>
> >>>>
> >>>> Thanks,
> >>>> Sean
> >>>>
> >>>> -----------------------------------------------------------
> >>>> 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
> >>>
> >
> >
> >
> > -----------------------------------------------------------
> > 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
>
>
>
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-user