You CANNOT use java.lang.String as your PK class unless:

The pk is a single field.
The field is of a VARCHAR or CHAR type or similar.

If the underlaying DB has a composite pk(the pk is more than a single
field), then you must create your OWN pk class.

I suggest you look around at www.theserverside.com for a .pdf file
that's called Mastering Enterprise JavaBeans.
Read it. It has examples, most developed on top of Weblogic 6.x.

An example of a PK(composite) class follows:

public class AlbumTrackBeanPK implements  Serializable
{

    public long albumId;
    public long trackId;

    public boolean equals(Object obj)
    {
        AlbumTrackBeanPK pkObj=(AlbumTrackBeanPK)obj;
        return (albumId==(pkObj.albumId) && trackId==(pkObj.trackId) );
    }

    public int hashCode()
    {
        try
        {
            long    crcKey = -1;
            java.io.ByteArrayOutputStream bos = new
java.io.ByteArrayOutputStream();
            java.io.ObjectOutputStream oos = new
java.io.ObjectOutputStream(bos);
            oos.writeObject(this);
            oos.flush();
            java.util.zip.Adler32 adl32 = new java.util.zip.Adler32();
            adl32.update(bos.toByteArray());
            crcKey = adl32.getValue();
            return (int)(crcKey ^ (crcKey >> 32));
        } catch (java.io.IOException ioEx)
        {
            return -1;
        }

    }
}

It was generated with Pramati Studio 3.0

HTH,

Juan Pablo Lorandi
Chief Software Architect
Code Foundry Ltd.
[EMAIL PROTECTED]

Barberstown, Straffan, Co. Kildare, Ireland.
Tel: +353-1-6012050  Fax: +353-1-6012051
Mobile: +353-86-2157900
www.codefoundry.com


> -----Original Message-----
> From: A mailing list for Enterprise JavaBeans development
> [mailto:[EMAIL PROTECTED]] On Behalf Of phani
> Sent: Wednesday, May 24, 2000 11:39 AM
> To: [EMAIL PROTECTED]
> Subject: Re: Need some examples
>
>
> hi,
>    I created another method ejbFindByUserName(String aKey){}
> but no luck... it is throwing a jit error... and retruns null
> only... Thanks for help phani
>
> ----- Original Message -----
> From: <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Monday, June 24, 2002 3:18 PM
> Subject: Re: Need some examples
>
>
> >
> > Create a new find by method:
> >   findByUsername(String username)
> > The find by primaryKey is used by the container I think
> >
> > >  from:    phani <[EMAIL PROTECTED]>
> > >  date:    Mon, 24 Jun 2002 09:57:47
> > >  to:      [EMAIL PROTECTED]
> > >  subject: Re: Need some examples
> > >
> > > Hi,
> > >    I got the primary key class concept....
> > >    If i have written a primary key class then i will use
> that class
> > > or i
> can
> > > use defalt java.lang.string class as primary key class ... right?
> > >
> > > Now my problem is i have a login table with two fields user_id and
> password.
> > > I am using Oracle8i DB and i am using BMP.
> > >
> > > I want to get the password from client by entering user_id.
> > >
> > > I coded Entity.java(Remote) EntityHome.java(Home) and
> EnitytEJB.java(Bean)
> > > and EnityClient.java (Client)
> > >
> > > But Client returning null value...
> > >
> > >
> > > -----------
> > > Entity.java
> > >
> > > import java.rmi.RemoteException;
> > > import javax.ejb.EJBObject;
> > > public interface Entity extends EJBObject {
> > >     String getPassword()throws RemoteException;
> > > }
> > > ----------------
> > > EntityHome.java
> > >
> > > import java.rmi.RemoteException;
> > >
> > > import javax.ejb.CreateException;
> > > import javax.ejb.EJBHome;
> > > import javax.ejb.FinderException;
> > > public interface EntityHome extends EJBHome {
> > >     public Entity findByPrimaryKey(String aKey)
> > >         throws RemoteException, FinderException;
> > > }
> > > -----------
> > > EntityEJB.java
> > >
> > > import javax.ejb.CreateException;
> > > import javax.ejb.EntityBean;
> > > import javax.ejb.EntityContext;
> > > import javax.ejb.FinderException;
> > > import java.sql.*;
> > >
> > > public class EntityEJB implements EntityBean {
> > >
> > >     /**
> > >      * No argument constructor required by container.
> > >      */
> > >     private EntityContext ctx;
> > >     public String password;
> > >     public EntityEJB() {
> > >     }
> > >
> > >     /**
> > >      * Reference EJB specification 1.1 section 9.2.5
> > >      */
> > >     public String ejbFindByPrimaryKey(String aKey)
> > >
> > >         Connection con=null;
> > >         PreparedStatement ps=null;
> > >         ResultSet rs=null;
> > >         String password=null;
> > >         try{
> > >             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
> > >
> > >
> con=DriverManager.getConnection("jdbc:odbc:vqi","system","manager");
> > >         }catch(Exception e){System.out.println(e);}
> > >         try{
> > >         ps=con.prepareStatement("select password from
> system.login
> > > where user_id=?");
> > >         ps.setString(1,aKey.trim());
> > >         rs=ps.executeQuery();
> > >         while(rs.next())
> > >         {
> > >          password=rs.getString("password");
> > >   System.out.println(password);//it is printing the password
> > >         }
> > >   con.close();
> > >         }catch(Exception e){System.out.println(e);}
> > >         return aKey;
> > >     }
> > >
> > >     /* Methods required for EntityBean interface. EJB 1.1 section
> > > 9.4 */
> > >
> > >     /**
> > >      * @see javax.ejb.EntityBean#ejbActivate()
> > >      */
> > >     public void setEntityContext(EntityContext context){
> > >         this.ctx=context;
> > >     }
> > >
> > >     /**
> > >      * @see javax.ejb.EntityBean#unsetEntityContext()
> > >      */
> > >     public void unsetEntityContext(){
> > >
> > >     }
> > >
> > >     /**
> > >      * @see javax.ejb.EntityBean#ejbActivate()
> > >      */
> > >     public void ejbActivate() {
> > >     }
> > >
> > >     /**
> > >      * @see javax.ejb.EntityBean#ejbPassivate()
> > >      */
> > >     public void ejbPassivate() {
> > >     }
> > >
> > >     /**
> > >      * @see javax.ejb.EntityBean#ejbLoad()
> > >      */
> > >     public void ejbLoad() {
> > >     }
> > >
> > >     /**
> > >      * @see javax.ejb.EntityBean#ejbStore()
> > >      */
> > >     public void ejbStore() {
> > >     }
> > >
> > >     /**
> > >      * @see javax.ejb.EntityBean#ejbRemove()
> > >      */
> > >     public void ejbRemove() {
> > >     }
> > >
> > >     public java.lang.String getPassword() {
> > >       System.out.println(password);
> > >         return password;
> > >     }
> > >
> > > }
> > > ----------
> > > EnityClient
> > > import javax.naming.*;
> > > import java.util.*;
> > > public  class  EntityClient
> > > {
> > >    public static void main(String  args[])
> > >    throws  Exception
> > >    {try{
> > >      System.out.println(" Please wait....");
> > >   Properties p=new Properties();
> > >
> > >
> p.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.T3Initial
> ContextFactory
> > > ");
> > > p.put(Context.PROVIDER_URL,"t3://localhost:7001");
> > >  Context  ctx=new InitialContext(p);
> > >  EntityHome  h=(EntityHome)ctx.lookup("bmpBean");
> > >  Entity  robj=h.findByPrimaryKey("phani");
> > > System.out.println(robj.getPassword());
> > > }catch(Exception e){System.out.println(e);}
> > >   } // main
> > >   } // end of EmpClient
> > >
> > > Can some one tell me where i went wrong?
> > > I have major doubt regarding to my findbyprimarykey() method
> overiding.....
> > > what i have done was right?
> > >
> > > Can some one point me in right direction?
> > >
> > > Thanks in advance
> > > phani
> > >
> > > ----- Original Message -----
> > > From: Ashwani Kalra <[EMAIL PROTECTED]>
> > > To: <[EMAIL PROTECTED]>
> > > Sent: Monday, June 24, 2002 1:42 PM
> > > Subject: Re: Need some examples
> > >
> > >
> > > > You need primary key class when there are more than one
> field(composite
> > > > key). Check your deployment descriptor.  For the
> <prim-key-class>
> element.
> > > > ----- Original Message -----
> > > > From: "phani" <[EMAIL PROTECTED]>
> > > > To: <[EMAIL PROTECTED]>
> > > > Sent: Monday, June 24, 2002 1:35 PM
> > > > Subject: Re: Need some examples
> > > >
> > > >
> > > > > Hi vellosa,
> > > > > Thanks for the info.
> > > > >
> > > > > I checked the sample dir. But I have read that the
> entity bean
> > > > > must
> > > > require
> > > > > an Primary key class.
> > > > > But i don't find any primary key class in the
> > > > > samples/examples/ejb/basic/beanManaged
> > > > > I have account.java(Remote) accountHome.java(Home)
> accountBean.java(EJB)
> > > > and
> > > > > client.java but where is Primary Key class.
> > > > >
> > > > > Thanks for the help
> > > > > phani
> > > > >
> > > > > ----- Original Message -----
> > > > > From: <[EMAIL PROTECTED]>
> > > > > To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
> > > > > Sent: Monday, June 24, 2002 1:24 PM
> > > > > Subject: Re: Need some examples
> > > > >
> > > > >
> > > > > > Hi Phani,
> > > > > >
> > > > > > I am using WebLogic 6.1 and there in the directory:
> > > > > >
> > > > > >   C:\bea\wlserver6.1\samples\examples
> > > > > >
> > > > > > I have a whole set of examples for everything you
> could ever
> > > > > > need
> to
> > > do
> > > > on
> > > > > WebLogic, well quite a bit anyway. There are examples
> of EJB 1.1
> > > > > and
> 2.0
> > > > > BMP, CMP and even Message Driven Beans. I'm sure you must have
> something
> > > > > similar under your 6.0 instalation?
> > > > > >
> > > > > > Regards
> > > > > > IV
> > > > > >
> > > > > >
> > > > > >
> > > > > > >  from:    phani <[EMAIL PROTECTED]>
> > > > > > >  date:    Mon, 24 Jun 2002 08:41:58
> > > > > > >  to:      [EMAIL PROTECTED]
> > > > > > >  subject: Re: Need some examples
> > > > > > >
> > > > > > > Hi,
> > > > > > >   I am new bie to ejb and i am messed with
> deploying entity
> beans on
> > > > > WL6.0
> > > > > > >
> > > > > > >    I need some basic examples for entity beans
> (both cmp and
> bmp)
> > > > > specific to weblogic 6.0 so that i can deploy and run without
> > > > > any modifications.
> > > > > > >
> > > > > > >  Are there any examples available with WL6.0 specific xml
> > > > > > > files? I searched the web but no luck.
> > > > > > >
> > > > > > > Thanks for any help
> > > > > > > phani
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> http://www.amazon.co.uk/exec/obidos/redirect-home?tag=vellosco
> uk-21&placemen
> > > > > t=home_multi.gif&site=amazon
> > > > >
> > > > >
> > > >
> > >
> ==============================================================
> =============
> > > > > 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".
> > >
> > >
> ==============================================================
> =============
> > > 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".
> > >
> >
> >
> >
> >
> http://www.amazon.co.uk/exec/obidos/redirect-home?tag=vellosco
uk-21&placemen
t=home_multi.gif&site=amazon

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