I answered this one time before on this list, look in the archive. It is
a bug that prevents jboss in making correct "create table"-statements,
and possibly other problems. Take a look at the CMP-forum at jboss.org.
Dain says he recommends using a new primary key instead.
On fre, 2002-05-17 at 15:23, [EMAIL PROTECTED] wrote:
> 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
_______________________________________________________________
Hundreds of nodes, one monster rendering program.
Now that�s a super model! Visit http://clustering.foundries.sf.net/
_______________________________________________
Xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user