我觉得问题可能出在你的doLoad方法里,请确保你的doLoad方法中用到的主键是从EJBContext里取到的。
解决方案 »
- axis作为客户端需要调web service,请高手帮忙指点!
- 类的静态变量会被序列化吗
- 求一个eclipse设置问题。
- SSH extjs 数据传输的问题
- Hibernate有什么缺点啊!!
- spring获取weblogic jndi 数据源急问
- 请问下能不能将java对象直接存成2进制文件?在线等中
- 请问用JAVA开发WEB应用都需要什么工具,学哪些知识,谢谢
- 在APPLET中使用JDBC访问ACCESS数据库(在线等待)
- 关于javamail的中文问题
- struts应用的一点理解,不知道对不对,大家看看。
- 请问哪里能够找到j2eetutorial中文版(本版提供的下载)中的例子程序?谢谢!
public void ejbLoad() {
/**@todo Complete this method*/
personId = (String)entityContext.getPrimaryKey();
System.out.println(personId);
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = getConnection();
ps = conn.prepareStatement(
"SELECT name, phone, email FROM person WHERE personId = ?");
ps.setString(1, personId);
rs = ps.executeQuery();
if (!rs.next())
throw new NoSuchEntityException();
name = rs.getString(1);
phone = rs.getString(2);
email = rs.getString(3);
// set the modified flag to false after loading the data
isModified = false;
} catch (SQLException ex) {
throw new EJBException(ex);
} finally {
cleanUp(conn, ps, rs);
} }
-------------------ejbfindbyprimary---------
public PersonPK ejbFindByPrimaryKey(PersonPK pk) throws FinderException {
/**@todo Complete this method*/
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = getConnection();
ps = conn.prepareStatement(
"SELECT 1 FROM person WHERE personId = ?");
ps.setString(1, pk.personId);
rs = ps.executeQuery(); if (rs.next()) {
System.out.println("return pk");
return pk;
} else {
throw new ObjectNotFoundException();
}
} catch (SQLException ex) {
throw new EJBException(ex);
} finally {
cleanUp(conn, ps, rs);
} }
大哥,有QQ吗,加我吧,好几天了都没解决问题啊,
我的QQ24964956
我的意思是你既然PersonPK是主键,那personId = (String)entityContext.getPrimaryKey();是不是该成为personId = (PersonPK)entityContext.getPrimaryKey();
personId = newpk.personId;
试了也不好用,怪了,不是jboss的问题吧