I have a primary key with multiple fields.
When I try to do a findByPrimary key from a client, I get Object not
found in storage. I know the database row exists.  Also, I can make
other findByPrimaryKey for CMP work by using a single field with no
primary key class.

I've included the primaryKey class and ejb-jar.xml and jaws xml files.

I thank anybody who would take the time to look at this.

package net.qspasp.ejbs.gl.tebnoml;

public class TebNomlPk implements java.io.Serializable {
    public String cmpy;
    public String noml;
    public int path;

    private int hashCode;

    public TebNomlPk() {
    }

    public TebNomlPk(String cmpy, String noml, int path) {
 this.cmpy = cmpy;
 this.noml = noml;
 this.path = path;

 StringBuffer buff = new StringBuffer();
 buff.append(cmpy);
 buff.append(noml);
 buff.append(path);
 hashCode =  buff.hashCode();
    }

    public boolean equals(Object key) {
 System.out.println("equals method");
 if ( (key == null)
      || !(key instanceof TebNomlPk) ) {
     System.out.println("equals =f1");
     return false;
 }
 if ( (((TebNomlPk)key).cmpy.equals(cmpy))
      && (((TebNomlPk)key).noml.equals(noml))
      && (((TebNomlPk)key).path == (path)) ) {
     System.out.println("equals =t1");
     return true;
 } else {
     System.out.println("equals =f2");
     return false;
 }
    }

    public int hashCode() {
 return hashCode;
    }
}


ejb-jar.xml
--------------------
<?xml version="1.0"?>

<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise
JavaBeans 1.1//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd">

<ejb-jar>
  <enterprise-beans>
    <entity>
      <description>Deployment descriptor for TebNoml bean</description>
      <ejb-name>TebNomlHome</ejb-name>
      <home>net.qspasp.ejbs.gl.tebnoml.TebNomlHome</home>
      <remote>net.qspasp.ejbs.gl.tebnoml.TebNoml</remote>
      <ejb-class>net.qspasp.ejbs.gl.tebnoml.TebNomlBean</ejb-class>
      <persistence-type>Container</persistence-type>

<prim-key-class>net.qspasp.ejbs.gl.tebnoml.TebNomlPk</prim-key-class>
      <reentrant>False</reentrant>
      <cmp-field><field-name>cmpy</field-name></cmp-field>
      <cmp-field><field-name>path</field-name></cmp-field>
      <cmp-field><field-name>noml</field-name></cmp-field>
      <cmp-field><field-name>descr_30</field-name></cmp-field>
      <resource-ref>
         <description>A jdbc connection for the CMP bean</description>
                <res-ref-name>QspDBPool</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
      </resource-ref>
    </entity>
  </enterprise-beans>
</ejb-jar>


jaws.xml
---------

<jaws>
    <datasource>xa.QspDBPool</datasource>
    <type-mapping>Oracle</type-mapping>

    <default-entity>
       <create-table>true</create-table>
       <remove-table>false</remove-table>
       <tuned-updates>true</tuned-updates>
       <read-only>false</read-only>
       <time-out>300</time-out>
    </default-entity>

    <type-mappings>
        <type-mapping>
            <name>Oracle</name>
            <mapping>
                <java-type>java.lang.Long</java-type>
                <jdbc-type>BIGINT</jdbc-type>
                <sql-type>NUMBER</sql-type>
            </mapping>
            <mapping>
                <java-type>java.lang.String</java-type>
                <jdbc-type>VARCHAR</jdbc-type>
                <sql-type>VARCHAR(256)</sql-type>
            </mapping>
            <mapping>
                <java-type>java.lang.String</java-type>
                <jdbc-type>VARCHAR</jdbc-type>
                <sql-type>CHAR</sql-type>
            </mapping>
            <mapping>
                <java-type>java.lang.Character</java-type>
                <jdbc-type>CHAR</jdbc-type>
                <sql-type>CHAR</sql-type>
            </mapping>
            <mapping>
                <java-type>java.lang.Short</java-type>
                <jdbc-type>INTEGER</jdbc-type>
                <sql-type>NUMBER</sql-type>
            </mapping>
            <mapping>
                <java-type>java.sql.TimeStamp</java-type>
                <jdbc-type>TIMESTAMP</jdbc-type>
                <sql-type>TIMESTAMP</sql-type>
            </mapping>
            <mapping>
                <java-type>java.lang.Double</java-type>
                <jdbc-type>DOUBLE</jdbc-type>
                <sql-type>NUMBER</sql-type>
            </mapping>
            <mapping>
                <java-type>java.lang.Byte</java-type>
                <jdbc-type>TINYINT</jdbc-type>
                <sql-type>NUMBER</sql-type>
            </mapping>
            <mapping>
                <java-type>java.lang.Boolean</java-type>
                <jdbc-type>BIT</jdbc-type>
                <sql-type>NUMBER</sql-type>
            </mapping>
            <mapping>
                <java-type>java.lang.Float</java-type>
                <jdbc-type>FLOAT</jdbc-type>
                <sql-type>NUMBER</sql-type>
            </mapping>
            <mapping>
                <java-type>java.lang.Object</java-type>
                <jdbc-type>JAVA_OBJECT</jdbc-type>
                <sql-type>JAVA_OBJECT</sql-type>
            </mapping>
            <mapping>
                <java-type>java.util.Date</java-type>
                <jdbc-type>DATE</jdbc-type>
                <sql-type>DATE</sql-type>
            </mapping>
            <mapping>
                <java-type>java.lang.Integer</java-type>
                <jdbc-type>INTEGER</jdbc-type>
                <sql-type>NUMBER</sql-type>
            </mapping>
        </type-mapping>
    </type-mappings>

<enterprise-beans>
     <entity>
       <ejb-name>TebNomlHome</ejb-name>
       <table-name>TEBNOML</table-name>
       <create-table>false</create-table>
       <cmp-field>
         <field-name>cmpy</field-name>
         <column-name>CMPY</column-name>
   <jdbc-type>VARCHAR</jdbc-type>
          <sql-type>VARCHAR(2)</sql-type>
       </cmp-field>
       <cmp-field>
         <field-name>noml</field-name>
         <column-name>NOML</column-name>
   <jdbc-type>VARCHAR</jdbc-type>
          <sql-type>VARCHAR(20)</sql-type>
       </cmp-field>
       <cmp-field>
         <field-name>path</field-name>
         <column-name>PATH</column-name>
  <jdbc-type>INTEGER</jdbc-type>
          <sql-type>NUMBER</sql-type>
       </cmp-field>
       <cmp-field>
         <field-name>descr_30</field-name>
         <column-name>DESCR_30</column-name>
       </cmp-field>
     </entity>
   </enterprise-beans>
</jaws>




--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
List Help?:          [EMAIL PROTECTED]

Reply via email to