Thanks!
This is actually what I've done to make such a method work...but why is
the xdoclet-generated code not set up this way? Is there an option I
can pass to xdoclet that will create the "setPk(whatever)" part of the
ejbCreate method? How else could I structure my *Bean.java source in
order to eliminate this problem?
--saul
On Sun, 2002-05-26 at 05:17, Vincent Harcq wrote:
> That is spec compliant to not set the PK fields after the entity bean
> exists.
> We just avoid setting the PK in setData.
> If you want en ejbCreate(AbcData data) it must looks like
> {
> setPk(whatever)
> setData(data)
> }
>
> Vincent
>
> ----- Original Message -----
> From: "Saul Farber" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Sunday, May 26, 2002 4:40 AM
> Subject: [Xdoclet-user] setData method in generated CMP class doesn't set
> "keyed" fields
>
>
> > Hello all,
> >
> > Dude...xdoclet (particularly ejbdoclet) is great. Already saved me ~20
> > hours of mindnumbing ejb work. Plus with the great docs was able to get
> > generation up, running, reading and integrating into my ant tasks with
> > very little ramp-up time.
> >
> > One problem, however, remains:
> >
> > When I generate the related "support" files (*CMP,*Data,*Home,*,*PK,
> > etc) from the tagged *Bean.java files, the setData method which the
> > *CMP.java file implements doesn't "set-the-data" for the fields (which
> > correspond to the methods which) are marked as key fields. I.e. if I
> > have the following Bean file:
> >
> > public class...blah {
> >
> > /**
> > * @ejb:persistent-field
> > * @ejb:pk-field
> > *
> > **/
> > public abstract java.math.BigDecimal getPKField();
> > <insert associated mutator here>
> >
> > /**
> > * @ejb:persistent-field
> > *
> > **/
> > public abstract java.math.BigDecimal getSomeValueField();
> > <insert associated mutator here>
> >
> > }
> >
> > I wind up with a *CMP.java file whose setData method looks like this:
> >
> > public void setData( my.package.*Data dataHolder )
> > {
> > try
> > {
> > setSomeValueField( dataHolder.getSomeValueField() );
> >
> > this.dataHolder = null;
> > }
> > catch (Exception e)
> > {
> > throw new javax.ejb.EJBException(e);
> > }
> > }
> >
> >
> > which doesn't set the primary key field when ejbCreate is called!! So I
> > get sql exceptions which point this out, and feed me long stack-traces.
> >
> > Any pointers? Should I include more information? Or am I missing some
> > "good design" practice that should remove this problem?
> >
> > thanks,
> >
> > saul
> >
> >
> > _______________________________________________________________
> >
> > Don't miss the 2002 Sprint PCS Application Developer's Conference
> > August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm
> >
> > _______________________________________________
> > Xdoclet-user mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/xdoclet-user
> >
> >
>
>
> _______________________________________________________________
>
> Don't miss the 2002 Sprint PCS Application Developer's Conference
> August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm
>
> _______________________________________________
> Xdoclet-user mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/xdoclet-user
_______________________________________________________________
Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm
_______________________________________________
Xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user