The diff are on the entity bean accessor
Create:
comp : creation of composed
aggr : fbpk + set link
Remove:
comp : deletion of composed
aggr : -
Set:
comp : fbpk + set link + set on composed
aggr : fbpk + set link
Get:
comp : fbpk + get Cached
aggr : fbpk + get at every call
This was made for cmp1.1 relation in mind so maybe some of these have no
or less sense with cmp2.
Vincent
> -----Original Message-----
> From: Steve Knight [mailto:[EMAIL PROTECTED]]
> Sent: jeudi 28 f�vrier 2002 18:45
> To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
> Subject: Re: [Xdoclet-user] Aggregate DataObjects
>
>
> Thanks for the explanation, Vincent.
> I am now using value objects and so far so good.
> I understand the difference between Aggregation and
> Composition, but what is the difference in terms of what gets
> generated by XDoclet?
>
> Thanks,
>
> Steve
>
>
> ----- Original Message -----
> From: "Vincent Harcq" <[EMAIL PROTECTED]>
> To: "'Steve Knight'" <[EMAIL PROTECTED]>;
> <[EMAIL PROTECTED]>
> Sent: Monday, February 25, 2002 2:14 PM
> Subject: RE: [Xdoclet-user] Aggregate DataObjects
>
>
> OK
>
> You need <valueobject/> subtask
>
> AddressBean have @ejb:value-object name="Address" match="*"
> instantiation="eager" That means that a AddressValue will be
> created containing all fields of the entity bean "eager"
> means the VO is build on ejbLoad
>
> Customer Bean have
> * @ejb:value-object name="CustomerLight" match="light"
> * @ejb:value-object name="CustomerNormal" match="normal"
> instantiation="eager"
> * @ejb:value-object name="Customer" match="*"
>
> 3 VO will be build. CustomerValue containing all fields
> CustomerNormalValue contains only fields that have a
> corresponding @ejb:value-object match="normal" For example
> getCredit() Etc... For LightValue
>
> You can avoid a field appearing in the VO (for example I
> XMLized/String Object that are saved in the DB and SAX them
> on read. Then my String has no meaning in my VO. I want the
> object. Use @ejb:value-object match="*" exclude="true"
> (Account.getLastModifiedDate) to avoid a field to be picked
> up in the VO In the opposite use @ejb:value-object name="..."
> match="..." on non persistent fields to put it in the VO See
> Accountean.getTotalAmount
>
> The attribute relation="external" on a field say this:
> because the VO is cached in the bean, sometimes you wan to
> update some fields because you did not have an setSth() that
> killed your VO. For example TotalAmount looks at other
> Account. The Acount on wich you get the VO, you must rerun
> this computation at get time.
>
> Aggregation (1-1)
> AccountBean ---> CustomerBean
> @ejb:value-object match="*" aggregate="CustomerNormalValue"
> aggregate-name="OwnerNormalValue"
>
> Association (1-1)
> CustomerBean ---> AddressBean
> ...
>
> For these look at generated code. The idea is
> "responsability" of an entity bean over its related
> relationship For Composition Customer knows he is the master
> of Address, .... In all these, aggregate/compose is the Java
> type of the aggregate/compose VO (you could read
> test.interfaces... In fact) Aggregate-name/compose-name is
> the name given to the get/set method
>
> Aggregation (1-n)
> CustomerBean ---> AccountBean
> @ejb:value-object match="*" aggregate="CustomerNormalValue"
> aggregate-name="OwnerNormalValue" ...
>
> Association (1-n)
> CustomerBean ---> AddressBean
> @ejb:value-object
> * match="normal"
> * type="Collection"
> * relation="external"
> * compose="test.interfaces.AddressValue"
> * compose-name="ShippingAddressValue"
> * members="test.interfaces.Address"
> * members-name="ShippingAddress"
>
> For 1-n I also need the type of what is in the Collection so
> the members and members-name For 1-n relation="external"
> should always be used.
>
> Finally this has not been tested and was written with CMP 1.1
> in mind, so more work will be needed for sure. This covers
> more than Data Object but I am listening to any improvements
> that could be added...
>
> Vincent
>
>
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED]] On Behalf
> Of Steve
> > Knight
> > Sent: lundi 25 f�vrier 2002 16:30
> > To: [EMAIL PROTECTED]
> > Subject: Re: [Xdoclet-user] Aggregate DataObjects
> >
> >
> > Hi Vincent,
> > Would you mind providing a brief explanation of how to use
> > ValueObjects. I am looking at the XDoclet samples, but I think an
> > explanation might be helpful as well.
> >
> > Thanks,
> >
> > Steve
> >
> >
> >
> > ----- Original Message -----
> > From: "Vincent Harcq" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>;
> > <[EMAIL PROTECTED]>
> > Sent: Monday, February 25, 2002 8:12 AM
> > Subject: RE: [Xdoclet-user] Aggregate DataObjects
> >
> >
> > > Aggregation on _DataObjects_ works only for 1-1
> > relationship. For 1-n,
> > > you may want to look at _ValueObject_ (only in cvs and not fully
> > > tested). It is a kind of _DataObject_ but more sophiticated. We
> > > introduced there 1-n relationships (as well as multiple VO
> > per entity
> > > bean with bean's attributes matching facility,
> > > aggregation/composition,
> > > ...) Have a look if you want. I'll appreciate feedback :)
> > >
> > > Vincent
> > >
> > > --- [EMAIL PROTECTED] wrote:
> > > > Hi,
> > > >
> > > > I'm also interested in knowing more about this. From what I
> > > > understand is you can put an ejb:aggregate task in the
> > javadocs for
> > > > a method: eg. for
> > > > public abstract Collection getAddresses() in a person
> > entity bean and
> > > > then I
> > > > would get a method in my person value object as follows:
> > public void
> > > > setAddresses(Collection addresses) and public Collection
> > > > getAddresses().
> > > >
> > > > If I include ejb:aggregate as such I get the following error:
> > > >
> > > > [ejbdoclet] Running XDoclet failed:
> > > > [ejbdoclet] <<The bean implementation class for interface
> > > > 'java.util.Collection' not found!>> [ejbdoclet] 1 error
> > > > [ejbdoclet] 100 warnings
> > > > [ejbdoclet] javadoc: In doclet class
> > xdoclet.DocletTask$DocletMain,
> > > > method
> > > > star
> > > > t has thrown an exception
> > java.lang.reflect.InvocationTargetException
> > > >
> > > > BUILD FAILED
> > > >
> > > > What is wrong here?
> > > >
> > > > Thanks :)
> > > > Bernie
> > > >
> > > > -----Urspr�ngliche Nachricht-----
> > > > Von: Steve Knight [mailto:[EMAIL PROTECTED]]
> > > > Gesendet: Samstag, 23. Februar 2002 19:15
> > > > An: [EMAIL PROTECTED]
> > > > Betreff: [Xdoclet-user] Aggregate DataObjects
> > > >
> > > >
> > > > Hello,
> > > > Can someone please explain how to use XDoclet to make Aggregate
> > > > DataObjects. I realize there is a ejb:aggregate tag,
> but I'm not
> > > > sure how to use it properly. And what gets generated?
> > > >
> > > > Thanks,
> > > >
> > > > Steve
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> > > __________________________________________________
> > > Do You Yahoo!?
> > > Yahoo! Sports - Coverage of the 2002 Olympic Games
> > > http://sports.yahoo.com
> > >
> > > _______________________________________________
> > > Xdoclet-user mailing list [EMAIL PROTECTED]
> > > https://lists.sourceforge.net/lists/listinfo/xdoclet-user
> > >
> >
> > _______________________________________________
> > Xdoclet-user mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/xdoclet-user
> >
> >
> >
>
>
>
> _________________________________________________________
> Do You Yahoo!?
> Get your free @yahoo.com address at http://mail.yahoo.com
>
>
>
>
_______________________________________________
Xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user