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
> 
> 
> 
> 

Reply via email to