No, this will not happen. you can consider them separate primary keys.

Cheers
Ashwani

----- Original Message -----
From: "Xie, Jinpeng" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, June 21, 2002 9:16 PM
Subject: How does container passivate and activate Primary keys in Ent ity
Bean?


> The specification said 'it is possible that multiple entity beans use the
> same primary key class' on section 9.8.
>
> Now I have two entity bean that uses the same primary key as indicated by
> the following codes:
>
> -------------------------------------Primary Key
> object---------------------------------------
> public class IDPrimaryKey {
>     private String id = null;
>     private Integer versionNumber = null;
>
>     public void setID(String newID) {
>           this.id = newID;
>     }
>
>     public String getID() {
>         return id;
>     }
>
>     public boolean equals(Object obj) {
>         if (obj instanceof this) {
>                 MyPrimaryKey temp = (MyPrimaryKey)obj;
>                 return id.equals(temp.getID));
>           }
>
>         return false;
>     }
>
>
>     public int hashCode() {
>           return id.hashCode();
>     }
>
>     public Integer getVersionNumber() {return versionNumber;}
>     public void setVersionNumber(Integer newVersionNumber)
> {this.versionNumber = newVersionNumber;}
> }
>
> -------------------------------------------------Entity bean
> 1-----------------------------------------
>
> public class Employee implements EntityBean {
>       private int versionNumberCount = 0;
>         private IDPrimaryKey primaryKey = null;
>       private EntityContext entityContext = null;
>
>
>         public void ejbActivate() throws
> EJBException,java.rmi.RemoteException {
>             primaryKey = (IDPrimaryKey)entityContext.getPrimaryKey();
>       }
>
>         public void ejbLoad() throws EJBException,java.rmi.RemoteException
{
>
>           ...
>           ...  load data from database.........
>
>             primaryKey.setVersionNumber(new
Integer(versionNumberCount++));
>       }
>       ................
>
> }
>
> -------------------------------------------------Entity Bean 2
> -------------------------------------
> public class Student implements EntityBean {
>         private IDPrimaryKey primaryKey = null;
>       private EntityContext entityContext = null;
>
>
>         public void ejbActivate() throws
> EJBException,java.rmi.RemoteException {
>             primaryKey = (IDPrimaryKey)entityContext.getPrimaryKey();
>       }
>
>       ................
>       public void ejbLoad() throws EJBException,java.rmi.RemoteException {
>           ...
>           ...  load data from database.........don't set version number
here
>       }
> }
>
> --------------------------------------------------------------------------
--
> ------------------
>
> If I am debuging them, two IDPrimaryKey objects in above two entity beans
> have different memory
> address although memeber attribute 'id' is the same among two IDPrimaryKey
> objects and one in
> Employee entity bean with non-null versionNumber and one in Student entity
> bean with null versionNumber.
>
> What happens if the ejb container swap them out and bring them back
sometime
> later?
> Can Employee entity bean get IDPrimaryKey object with non-null
versionNumber
> and Student entity bean get IDPriamryKey object with null versionNumber?
>
>
> Jim
>
>
===========================================================================
> 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".
>

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