Thanks for letting me know.
{off topic}
What do you mean that composite PK's are not very well supported? Do you
have any particular examples?
Thanks.
Stephen.
-----Original Message-----
From: Marius Kotsbak [mailto:[EMAIL PROTECTED]]
Sent: 17 May 2002 14:20
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Subject: Re: [Xdoclet-user] Composite primary keys.
Known problem. I have reported it as bug.
Beware that if you are using jboss, composite PKs are not supported very
well on 3.x versions.
On fre, 2002-05-17 at 14:56, [EMAIL PROTECTED] wrote:
> Hello all,
>
> I have another problem. I am using generated composite primary keys. They
> may only contain one element though. When XDoclet generates the
ejb-jar.xml
> file it is adding the tag <primkey-field> and this is causing problems
with
> the container.
>
> eg:
>
> IndividualBean.java
> -------------------
> /**
> * @ejbPrimaryKey <{IndividualPK}>
> * @ejbTransactionAttribute Required
> * @stereotype party
> * @author Stephen J. Thompson
> * @undefined
> * @displayName
> * @ejbLocal <{IndividualLocal}>
> * @ejbLocalHome <{IndividualLocalHome}>
> *
> *
> * @ejb:bean name="IndividualBean"
> * type="CMP"
> * view-type="local"
> *
local-jndi-name="ejb/cass/contactmanager/IndividualLocal"
> * primkey-field="uid"
> *
> * @ejb:home extends="javax.ejb.EJBHome"
> * generate="local"
> *
> local-class="uk.co.cass_ltd.contactmanager.dataobject.IndividualLocalHome"
> *
> * @ejb:interface extends="javax.ejb.EJBObject"
> * generate="local"
> *
> local-class="uk.co.cass_ltd.contactmanager.dataobject.IndividualLocal"
> *
> * @ejb:pk
> class="uk.co.cass_ltd.contactmanager.dataobject.IndividualPK"
> *
> *
> * @jboss:table-name "CASSINDIVIDUAL"
> * @jboss:create-table "true"
> * @jboss:remove-table "false"
> * @jboss:tuned-updates "true"
> * @jboss:read-only "false"
> */
> abstract public class IndividualBean implements EntityBean {
> ...
> /**
> * @undefined
> * @ejbColumnName UID
> *
> *
> * @ejb:pk-field
> * @ejb:persistent-field
> * @ejb:interface-method
> *
> * @jboss:column-name "UID"
> */
> public abstract Integer getUid() throws javax.ejb.EJBException;
>
> public abstract void setUid(Integer param) throws EJBException;
> ...
> }
>
>
>
>
>
>
>
>
> IndividualPK.java
> -----------------
> /**
> * Primary key for IndividualBean.
> * @ejbPrimaryKey <{IndividualPK}>
>
> * @ejbTransactionAttribute Required
>
> * @stereotype party
>
> * @author XDOCLET 1.1.2
> * @undefined
>
> * @displayName
>
> * @ejbLocal <{IndividualLocal}>
>
> * @ejbLocalHome <{IndividualLocalHome}>
>
> * @xdoclet-generated at 17-May-02 11:49:49
> */
> public class IndividualPK
> extends java.lang.Object
> implements java.io.Serializable
> {
> static final long serialVersionUID = -3539616133369563807L;
> transient private int _hashCode = Integer.MIN_VALUE;
> transient private String value = null;
>
> public java.lang.Integer uid;
>
> public IndividualPK()
> {
> }
>
> public IndividualPK( java.lang.Integer uid )
> {
> this.uid = uid;
> }
>
> public java.lang.Integer getUid()
> {
> return uid;
> }
>
> public void setUid(java.lang.Integer uid)
> {
> this.uid = uid;
> }
>
> public int hashCode()
> {
> if( _hashCode == Integer.MIN_VALUE )
> {
> _hashCode += this.uid.hashCode();
> }
>
> return _hashCode;
> }
>
> public boolean equals(Object obj)
> {
> if( !(obj instanceof
> uk.co.cass_ltd.contactmanager.dataobject.IndividualPK) )
> return false;
>
> uk.co.cass_ltd.contactmanager.dataobject.IndividualPK pk =
> (uk.co.cass_ltd.contactmanager.dataobject.IndividualPK)obj;
> boolean eq = true;
>
> if( obj == null )
> {
> eq = false;
> }
> else
> {
> if( this.uid == null &&
> ((uk.co.cass_ltd.contactmanager.dataobject.IndividualPK)obj).getUid() ==
> null )
> {
> eq = true;
> }
> else
> {
> if( this.uid == null ||
> ((uk.co.cass_ltd.contactmanager.dataobject.IndividualPK)obj).getUid() ==
> null )
> {
> eq = false;
> }
> else
> {
> eq = eq && this.uid.equals( pk.uid );
> }
> }
> }
>
> return eq;
> }
>
> public String toString()
> {
> if( value == null )
> {
> value = "[.";
> value += this.uid+".";
> value += "]";
> }
>
> return value;
> }
> }
>
>
>
>
>
>
>
>
>
>
> ejb-jar.xml - generated by XDoclet.
> -----------------------------------
>
> ...
> <entity >
> <description><![CDATA[No Description.]]></description>
>
> <ejb-name>IndividualBean</ejb-name>
>
>
>
<local-home>uk.co.cass_ltd.contactmanager.dataobject.IndividualLocalHome</lo
> cal-home>
>
> <local>uk.co.cass_ltd.contactmanager.dataobject.IndividualLocal</local>
>
>
>
<ejb-class>uk.co.cass_ltd.contactmanager.dataobject.IndividualBean</ejb-clas
> s>
> <persistence-type>Container</persistence-type>
>
>
<prim-key-class>uk.co.cass_ltd.contactmanager.dataobject.IndividualPK</prim-
> key-class>
> <reentrant>False</reentrant>
> <cmp-version>2.x</cmp-version>
> <abstract-schema-name>IndividualBean</abstract-schema-name>
> <cmp-field >
> <description><![CDATA[]]></description>
> <field-name>uid</field-name>
> </cmp-field>
> <cmp-field >
> <description><![CDATA[]]></description>
> <field-name>dear</field-name>
> </cmp-field>
> <cmp-field >
> <description><![CDATA[]]></description>
> <field-name>forname</field-name>
> </cmp-field>
> <cmp-field >
> <description><![CDATA[]]></description>
> <field-name>middlename</field-name>
> </cmp-field>
> <cmp-field >
> <description><![CDATA[]]></description>
> <field-name>surname</field-name>
> </cmp-field>
> <primkey-field>uid</primkey-field>
>
> </entity>
> ...
>
>
> As you can see it added the tag <primkey-field>uid</primkey-field> to the
> ejb-jar.xml file. This causes JBoss to reject it with the message "The
type
> of primkey-field must match the primary key class". If I delete the line
> from the ejb-jar.xml file it deploys fine.
>
>
> Anyone know where I have gone wrong?
>
>
> Thanks.
>
>
> Stephen.
>
>
> ---
> Tell someone there are 100 billion stars and they will believe you...
> Tell them that a bench has wet paint on it and they'll have to touch it to
> be sure.
>
>
>
----------------------------------------------------------------------------
---------------
>
> Copyright material and/or confidential and/or privileged information may
be contained in this e-mail and any attached documents. The material and
information is intended for the use of the intended addressee only. If you
are not the intended addressee, or the person responsible for delivering it
to the intended addressee, you may not copy, disclose, distribute,
disseminate or deliver it to anyone else or use it in any unauthorised
manner or take or omit to take any action in reliance on it. To do so is
prohibited and may be unlawful. The views expressed in this e-mail may not
be official policy but the personal views of the originator. If you receive
this e-mail in error, please advise the sender immediately by using the
reply facility in your e-mail software, or contact [EMAIL PROTECTED]
Please also delete this e-mail and all documents attached immediately.
> Many thanks for your co-operation.
>
> BMW Financial Services (GB) Limited is registered in England and Wales
under company number 01288537.
> Registered Offices : Europa House, Bartley Way, Hook, Hants, RG27 9UF
>
----------------------------------------------------------------------------
--------------
>
>
> _______________________________________________
> Xdoclet-user mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/xdoclet-user
_______________________________________________________________
Have big pipes? SourceForge.net is looking for download mirrors. We supply
the hardware. You get the recognition. Email Us: [EMAIL PROTECTED]
_______________________________________________
Xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user