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

Reply via email to