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