??奇怪!
你实体bean的值变了,数据库的值不也就变了嘛。你还要怎样?

解决方案 »

  1.   

    我在jsp文件中写:try {
          //get naming context
          Context ctx = new InitialContext();      //look up jndi name
          Object ref = ctx.lookup("StudentRemote");      //cast to Home interface
         StudentRemoteHome enterprise1Home = (StudentRemoteHome) PortableRemoteObject.narrow(ref, StudentRemoteHome.class);              StudentRemote remote1=enterprise1Home.findByPrimaryKey("123456");
             remote1.mody("12345","冬","女","30");
    }catch (Exception ex) {
     out.println(ex.toString());          ex.printStackTrace();         }
    结果报错:java.rmi.RemoteException: EJB Exception: ; nested exception is: java.lang.IllegalStateException: The setXXX method for a primary key field may only be called during ejbCreate. Start server side stack trace: java.rmi.RemoteException: EJB Exception: ; nested exception is: java.lang.IllegalStateException: The setXXX method for a primary key field may only be called during ejbCreate. java.lang.IllegalStateException: The setXXX method for a primary key field may only be called during ejbCreate.
      

  2.   

    我就是不知道如何定位一个实体Bean,然后再修改它的值!
      

  3.   

    不能修改关键字。如果必须改,你可以先创建一条新的纪录,再删除原先的。如: StudentRemote remote1 = enterprise1Home.findByPrimaryKey("123456");
     StudentRemote remote2 = enterprise1Home.create("12345","冬","女","30");
     remote1.remove();
      

  4.   

    我想实体bean不能直接修改关键字的吧。如果你一定要这么做的话,有两种办法:
    1、使用session bean完成
    2、还是使用entity bean,但是要先创建一个新的,然后再删除旧的。
      

  5.   

    remote1.setXXX() 就是改变数据库的值
    每一个字段对应一个set方法..
      

  6.   

    如果我把mody方法改成:
    public void mody(String name, String sex, String old) {
        /**@todo Complete this method*/    
        setName(name);
        setSex(sex);
        setOld(old);
      }
    可以吗?
      

  7.   

    使用session bean怎样完成对实体Bean的关键字的修改?