我在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.
//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.
StudentRemote remote2 = enterprise1Home.create("12345","冬","女","30");
remote1.remove();
1、使用session bean完成
2、还是使用entity bean,但是要先创建一个新的,然后再删除旧的。
每一个字段对应一个set方法..
public void mody(String name, String sex, String old) {
/**@todo Complete this method*/
setName(name);
setSex(sex);
setOld(old);
}
可以吗?