friends:

  I met a grotesque problem in these days.
  Compound PK inculded three PK in CMP EJB2.0 does't work.

Table name : TblProdLink
Table structure: FromProdId(PK)
                   ToProdId(PK)
                   ProdLinkTypeId(PK)(FK)
                   FromProdQty

SourceCode: ProdLinkPK.java

/**
 *  ProdLinkPK.java
 */
package com.oval.core.catalog.model.prodlink;
import java.io.Serializable;
/**
 * this class is the primary key class for ProdLinkBean, which has two primary key 
fields:
 * FromProdId and ToProdId.
 */
final public class ProdLinkPK implements Serializable
{
  private transient int m_hashCode = -1;

  /**
   * fromProId the first one of the primary key fields
   * note: naming must correspond to the PK field
   */
  public java.lang.Integer fromProdId;

  /**
   * toProdId the second one of the primary key fileds.
   * note: naming must correspond to the PK field
   */
  public java.lang.Integer toProdId;

  /**
   * ProdLinkTypeId the third one of the primary key fileds.
   * note: naming must correspond to the PK field
   */
  public java.lang.Integer prodLinkTypeId;

  /**
   * default constructor
   */
  public ProdLinkPK() {}

  /**
   * Constructor ProdLinkPK
   * @param a_UnitId UnitId
   * @param a_Unit Unit
   */
  public ProdLinkPK(java.lang.Integer a_FromProdId, java.lang.Integer a_ToProdId, 
java.lang.Integer a_ProdLinkTypeId)
  {
    this.fromProdId = a_FromProdId;
    this.toProdId = a_ToProdId;
    this.prodLinkTypeId = a_ProdLinkTypeId;
  }


  /**
   * must provide this method to override
   */
/*  public int hashCode()
  {
      System.out.println("into hash code!");
      if (m_hashCode == -1)
      {
         System.out.println("m_hashcode is -1!");
         m_hashCode = (fromProdId.hashCode()) ^ (toProdId.hashCode()); //^ 
(prodLinkTypeId.hashCode());
      }
      System.out.println("return hashcode" + m_hashCode);
      return m_hashCode;
  }

  public boolean equals(Object other)
  {
      if (other == this) return true;
      if (null == other) return false;
      System.out.println("other is null or == this");
      if (other.hashCode() != hashCode()) return false;
      try
      {
          com.oval.core.catalog.model.prodlink.ProdLinkPK other2 = 
(com.oval.core.catalog.model.prodlink.ProdLinkPK) other;
          return (this.fromProdId.equals(other2.fromProdId)) && 
(this.toProdId.equals(other2.toProdId)) && 
(this.prodLinkTypeId.equals(other2.prodLinkTypeId));
      }
      catch(ClassCastException ex)
      {
        System.out.println("catch ClassCastException !");
      }
      return false;
  }
*/

  public Integer getFromProdId() {
      return fromProdId;
  }
  public Integer getToProdId() {
      return toProdId;
  }
  public Integer getProdLinkTypeId() {
      return prodLinkTypeId;
  }
  public boolean equals(Object obj)
  {
    if (obj == null || !(obj instanceof ProdLinkPK))
       return false;

    ProdLinkPK other = (ProdLinkPK)obj;
    if(this.fromProdId.equals(other.fromProdId) && 
this.prodLinkTypeId.equals(other.prodLinkTypeId) &&
      this.toProdId.equals(other.toProdId))
      return true;
    else
      return false;

  }
  public int hashCode(){
    return fromProdId.hashCode()^prodLinkTypeId.hashCode()^toProdId.hashCode();
  }

}


ErrorMsg:

setSessionContext called
setEntityContext called (1766184, PK = nullctx)
setEntityContext called (4284619, PK = nullctx)
DictionaryBaseBean.ejbActivate (4284619, PK = 2501)
DictionaryBaseBean.ejbLoad (4284619, PK = 2501)
ProdLinkBaseBean.setEntityContext called (4246912, PK = nullctx)
ProdLinkBaseBean.ejbCreate
the FromProdId is 1005
the ToProdId is 1006
the ProdLinkTypeId is 2501
the FromProdQty is 22222
the DateLastUpdated is 2001-08-13
ProdLinkBaseBean.ejbPostCreate (4246912, PK = com.oval.core.catalog.model.prodli
nk.ProdLinkPK@9c6)
ProdLink has been created!
javax.transaction.TransactionRolledbackException: java.rmi.RemoteException: EJB
Exception:; nested exception is:
        javax.ejb.EJBException
 - with nested exception:
[java.sql.SQLException: ORA-00957: duplicate column name
]
java.sql.SQLException: ORA-00957: duplicate column name

        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114)
        at oracle.jdbc.oci8.OCIDBAccess.check_error(OCIDBAccess.java:1503)
        at oracle.jdbc.oci8.OCIDBAccess.executeFetch(OCIDBAccess.java:1111)
        at oracle.jdbc.oci8.OCIDBAccess.parseExecuteFetch(OCIDBAccess.java:1235)

        at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.ja
va:1313)
        at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.jav
a:1232)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithBatch(OracleStatement
.java:1353)
        at oracle.jdbc.driver.OracleStatement.doExecute(OracleStatement.java:176
0)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
nt.java:1805)
        at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePrepar
edStatement.java:322)
        at weblogic.jdbc.pool.PreparedStatement.executeUpdate(PreparedStatement.
java:75)
        at weblogic.jdbc.rmi.internal.PreparedStatementImpl.executeUpdate(Prepar
edStatementImpl.java:55)
        at weblogic.jdbc.rmi.SerialPreparedStatement.executeUpdate(SerialPrepare
dStatement.java:55)
        at com.oval.core.catalog.model.prodlink.ProdLinkBean_WebLogic_CMP_RDBMS.
__WL_create(ProdLinkBean_WebLogic_CMP_RDBMS.java:1469)
        at com.oval.core.catalog.model.prodlink.ProdLinkBean_WebLogic_CMP_RDBMS.
ejbPostCreate(ProdLinkBean_WebLogic_CMP_RDBMS.java:1356)
        at java.lang.reflect.Method.invoke(Native Method)
        at weblogic.ejb20.manager.DBManager.create(DBManager.java:444)
        at weblogic.ejb20.internal.EntityEJBHome.create(EntityEJBHome.java:353)
        at com.oval.core.catalog.model.prodlink.ProdLinkBeanHomeImpl.create(Prod
LinkBeanHomeImpl.java:90)
        at com.oval.core.catalog.model.prodlink.ProdLinkBeanHomeImpl_WLSkel.invo
ke(ProdLinkBeanHomeImpl_WLSkel.java:64)
        at weblogic.rmi.internal.BasicServerAdapter.invoke(BasicServerAdapter.ja
va:373)
        at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:128)
        at weblogic.rmi.internal.BasicServerAdapter.invoke(BasicServerAdapter.ja
va:237)
        at weblogic.rmi.internal.BasicRequestHandler.handleRequest(BasicRequestH
andler.java:118)
        at weblogic.rmi.internal.BasicRequestDispatcher.dispatch(BasicRequestDis
patcher.java:115)
        at weblogic.rmi.internal.ServerRequest.sendOneWayRaw(ServerRequest.java:
88)
        at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:10
8)
        at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteR
ef.java:247)
        at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteR
ef.java:225)
        at com.oval.core.catalog.model.prodlink.ProdLinkBeanHomeImpl_WLStub.crea
te(ProdLinkBeanHomeImpl_WLStub.java:135)
        at com.oval.core.catalog.control.OvalCatalogEngine.createProdLink(OvalCa
talogEngine.java:2392)
        at com.oval.custom.catalog.control.catalog.CatalogEngineBeanImpl.createP
rodLink(CatalogEngineBeanImpl.java:110)
        at com.oval.custom.catalog.control.catalog.CatalogEngineBeanEOImpl.creat
eProdLink(CatalogEngineBeanEOImpl.java:31)
        at com.oval.custom.catalog.control.catalog.CatalogEngineBeanEOImpl_WLSke
l.invoke(CatalogEngineBeanEOImpl_WLSkel.java:130)
        at weblogic.rmi.internal.BasicServerAdapter.invoke(BasicServerAdapter.ja
va:373)
        at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:128)
        at weblogic.rmi.internal.BasicServerAdapter.invoke(BasicServerAdapter.ja
va:237)
        at weblogic.rmi.internal.BasicRequestHandler.handleRequest(BasicRequestH
andler.java:118)
        at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:17)
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
--------------- nested within: ------------------
javax.ejb.EJBException
 - with nested exception:
[java.sql.SQLException: ORA-00957: duplicate column name
]
        at com.oval.core.catalog.model.prodlink.ProdLinkBean_WebLogic_CMP_RDBMS.
ejbPostCreate(ProdLinkBean_WebLogic_CMP_RDBMS.java:1373)
        at java.lang.reflect.Method.invoke(Native Method)
        at weblogic.ejb20.manager.DBManager.create(DBManager.java:444)
        at weblogic.ejb20.internal.EntityEJBHome.create(EntityEJBHome.java:353)
        at com.oval.core.catalog.model.prodlink.ProdLinkBeanHomeImpl.create(Prod
LinkBeanHomeImpl.java:90)
        at com.oval.core.catalog.model.prodlink.ProdLinkBeanHomeImpl_WLSkel.invo
ke(ProdLinkBeanHomeImpl_WLSkel.java:64)
        at weblogic.rmi.internal.BasicServerAdapter.invoke(BasicServerAdapter.ja
va:373)
        at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:128)
        at weblogic.rmi.internal.BasicServerAdapter.invoke(BasicServerAdapter.ja
va:237)
        at weblogic.rmi.internal.BasicRequestHandler.handleRequest(BasicRequestH
andler.java:118)
        at weblogic.rmi.internal.BasicRequestDispatcher.dispatch(BasicRequestDis
patcher.java:115)
        at weblogic.rmi.internal.ServerRequest.sendOneWayRaw(ServerRequest.java:
88)
        at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:10
8)
        at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteR
ef.java:247)
        at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteR
ef.java:225)
        at com.oval.core.catalog.model.prodlink.ProdLinkBeanHomeImpl_WLStub.crea
te(ProdLinkBeanHomeImpl_WLStub.java:135)
        at com.oval.core.catalog.control.OvalCatalogEngine.createProdLink(OvalCa
talogEngine.java:2392)
        at com.oval.custom.catalog.control.catalog.CatalogEngineBeanImpl.createP
rodLink(CatalogEngineBeanImpl.java:110)
        at com.oval.custom.catalog.control.catalog.CatalogEngineBeanEOImpl.creat
eProdLink(CatalogEngineBeanEOImpl.java:31)
        at com.oval.custom.catalog.control.catalog.CatalogEngineBeanEOImpl_WLSke
l.invoke(CatalogEngineBeanEOImpl_WLSkel.java:130)
        at weblogic.rmi.internal.BasicServerAdapter.invoke(BasicServerAdapter.ja
va:373)
        at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:128)
        at weblogic.rmi.internal.BasicServerAdapter.invoke(BasicServerAdapter.ja
va:237)
        at weblogic.rmi.internal.BasicRequestHandler.handleRequest(BasicRequestH
andler.java:118)
        at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:17)
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
; nested exception is:
        java.rmi.RemoteException: EJB Exception:; nested exception is:
        javax.ejb.EJBException
 - with nested exception:
[java.sql.SQLException: ORA-00957: duplicate column name
]
java.rmi.RemoteException: EJB Exception:; nested exception is:
        javax.ejb.EJBException
 - with nested exception:
[java.sql.SQLException: ORA-00957: duplicate column name
]
java.sql.SQLException: ORA-00957: duplicate column name

        <<no stack trace available>>
--------------- nested within: ------------------
javax.ejb.EJBException
 - with nested exception:
[java.sql.SQLException: ORA-00957: duplicate column name
]
        <<no stack trace available>>


  Please help me, Thanks!

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff EJB-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to