Jack, If you're using a user-defined primary key class, as opposed to a Java class like String or Integer, then you don't define the primkey-field in the ejb-jar.xml.
>From p.370 of O'reilly's Enterprise JavaBeans, 2nd Edition, describing the <primkey-field> entry in the ejb-jar.xml: It is not used if the bean has a custom primary key or if the entity bean manages its own persistence. Jeff. On Thu, 11 Oct 2001 16:31:58 -0500 (CDT) "Jack C. Miller" <[EMAIL PROTECTED]> wrote: > > I am having some difficulty getting orion to use my primary key class > during deployment. I have an EJB AnyPerson with which I use a primary key > class AnyPersonKey that has a public java.lang.String primaryKey field. > During deployment, I get a compilation error that looks like the CMP isn't > being generated properly. > > The orion-ejb-jar.xml file looks fine, as does the ejb-jar file. I get > this error on deploy: > > Auto-deploying kwu-ejb.jar (Classes were updated)... Error compiling > C:\orion\applications\kwu-phase-2\kwu-ejb.jar: Incompatible type for > prim-key-class and type of the specified primkey-field: Cannot convert > from class com.kw.kwu.model.AnyPerson.AnyPersonKey to class > java.lang.String > > It doesn't seem to recognize that I'm using a primary key class at all, > even though it is mapped in the orion-ejb-jar.xml file. > > Has anyone got a working example of this? I'm tired of tweaking the > orion-ejb-jar to try and get it working. > > Here's a snippet from my orion-ejb-jar.xml: > > <enterprise-beans> > <entity-deployment name="AnyPerson" location="AnyPerson" > wrapper="AnyPersonHome_EntityHomeWrapper45" max-tx-retries="3" > table="AnyPerson" data-source="jdbc/SQLServerDSCore"> > <primkey-mapping> > <cmp-field-mapping> > <fields> > <cmp-field-mapping > name="primaryKey" persistence-name="primaryKey" /> > </fields> > </cmp-field-mapping> > </primkey-mapping> > <cmp-field-mapping name="FirstName" > persistence-name="FirstName" /> > <cmp-field-mapping name="LastName" > persistence-name="LastName" /> > <cmp-field-mapping name="Salutation" > persistence-name="Salutation" /> > <cmp-field-mapping name="Username" > persistence-name="Username" /> > <cmp-field-mapping name="Password" > persistence-name="Password" /> > <cmp-field-mapping name="Address1" > persistence-name="Address1" /> > <cmp-field-mapping name="Address2" > persistence-name="Address2" /> > <cmp-field-mapping name="City" > persistence-name="City" /> > <cmp-field-mapping name="StateProvId" > persistence-name="StateProvId" /> > <cmp-field-mapping name="PostalCd" > persistence-name="PostalCd" /> > <cmp-field-mapping name="Country" > persistence-name="Country" /> > <cmp-field-mapping name="HomePhone" > persistence-name="HomePhone" /> > <cmp-field-mapping name="Fax" > persistence-name="Fax" /> > <cmp-field-mapping name="Email" > persistence-name="Email" /> > <cmp-field-mapping name="LastModTime" > persistence-name="LastModTime" /> > <cmp-field-mapping name="ModifiedBy" > persistence-name="ModifiedBy" /> > > > and the matching ejb-jar.xml file: > > <ejb-jar> > <description>Generated deployment descriptors</description> > <enterprise-beans> > <entity> > <ejb-name>AnyPerson</ejb-name> > > <home>com.kw.kwu.model.AnyPerson.AnyPersonHome</home> > > <remote>com.kw.kwu.model.AnyPerson.AnyPerson</remote> > > <ejb-class>com.kw.kwu.model.AnyPerson.AnyPersonBean</ejb-class> > <persistence-type>Container</persistence-type> > > <prim-key-class>com.kw.kwu.model.AnyPerson.AnyPersonKey</prim-key-class> > <reentrant>false</reentrant> > <cmp-field><field-name>primaryKey</field-name> > > <cmp-field><field-name>FirstName</field-name></cmp-field> > > <cmp-field><field-name>LastName</field-name></cmp-field> > > <cmp-field><field-name>Salutation</field-name></cmp-field> > > <cmp-field><field-name>Username</field-name></cmp-field> > > <cmp-field><field-name>Password</field-name></cmp-field> > > <cmp-field><field-name>Address1</field-name></cmp-field> > > <cmp-field><field-name>Address2</field-name></cmp-field> > > <cmp-field><field-name>City</field-name></cmp-field> > > <cmp-field><field-name>StateProvId</field-name></cmp-field> > > <cmp-field><field-name>PostalCd</field-name></cmp-field> > > <cmp-field><field-name>Country</field-name></cmp-field> > > <cmp-field><field-name>HomePhone</field-name></cmp-field> > > <cmp-field><field-name>Fax</field-name></cmp-field> > > <cmp-field><field-name>Email</field-name></cmp-field> > > <cmp-field><field-name>LastModTime</field-name></cmp-field> > > <cmp-field><field-name>ModifiedBy</field-name></cmp-field> > <primkey-field>primaryKey</primkey-field> > </entity> > > Thanks! > > Jack Miller > > > >