bob combs wrote:
> Problem lies in what's being generated in the getPrimaryKey()
> in the VO:
>
> public com.messagegate.foundation.id.UUID getPrimaryKey() {
> com.messagegate.foundation.id.UUID pk = new
> com.messagegate.foundation.id.UUID();
> return pk;
> }
WTF?! That's truly bizarre. What version of XDoclet are you using? I'm
on 1.2b2 and the template consists of
public <XDtEjbPk:pkClass/> getPrimaryKey()
{
return pk;
}
The constructors create the primary key when not provided, but when it
*is* provided, here's the tail of the constructor:
<XDtEjbPk:ifHasPrimkeyField>
pk = this.<XDtEjbPk:primkeyGetter/>();
</XDtEjbPk:ifHasPrimkeyField>
<XDtEjbPk:ifDoesntHavePrimkeyField>
pk = new <XDtEjbPk:pkClass/>(<XDtEjbPk:pkfieldListFrom
name="this"/>);
</XDtEjbPk:ifDoesntHavePrimkeyField>
Hmm, now that I look at it, it seems that if you use the class-level tag
(@ejb.primkey-field) it should be of the PK-class type, which is not the
case for custom PK classes AFAIK. Perhaps I'm mistaken and
@ejb.primkey-field can only be used when you aren't using a PK class. In
the case of a PK class you need to mark each field with @ejb.pk-field. I
could swear the docs say differently, but it's been a while.
In any case, you'll need to modify the template to modify how it handles
this issue. You really don't want to create a new PK every time you
access it. It should be created along with the VO and simply returned
directly.
> Any idea how to fix the getPrimaryKey issue, or is that a merge point
> solution too.
In this case it seems the template itself is incorrect, and so you can't
fix it with a merge point (you can't override a method in the same
class). You could add an abstract method in a common superclass for all
your VOs, but you'd still need to implement it to access the correct
field in the VO -- requiring a merge point or modifying the template.
You may as well just fix the template at that point to simplify your
life. :)
David Harkness
Sr. Software Engineer
Sony Pictures Digital Networks
(310) 482-4756
-------------------------------------------------------
This SF.Net email is sponsored by Sleepycat Software
Learn developer strategies Cisco, Motorola, Ericsson & Lucent use to deliver
higher performing products faster, at low TCO.
http://www.sleepycat.com/telcomwpreg.php?From=osdnemail3
_______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user