个人觉得,若是主键设置为数据库自动增长的,那麽就得用BMPbean,CMP是要插入主键到数据库的。用BMP,在ejbCreate中,插入记录,然后用select查询返回主键(数据库中应该有查询返回自动递增的主键的sql语句),将主键包装成一个类,如int主键包装成Integer类,那麽,这个BMPbean的主键类就是这个包装类,返回这个包装类即可。

解决方案 »

  1.   

    cmp中你自己写的bean,ejbCreate可以返回null的吧?我没记错的话。
    cmp容器会自动帮你生成真正的实现类的.
    具体的使用数据库自动增长的序列的话,应该在和服务器相关的配置文件中写出来
      

  2.   

    现在Entity Bean 是BMP,
      

  3.   

    to jiaoyong_SouthEast() 
    查找自动增长的主键,我采用的方法是查询最大的主键,
    可是这种方法,好像不行,ejbCreate会插入两条相同的记录,
    不知道是什么原因,
    前几天在<<J2EE Tutorial>>这门书上面看到,它说BMP的主键要通过参数传入,即ejbCreat方法的参数中需含有主键,然后在ejbCreate方法中查找该主键是否存在,如果存在就返回该主键,如果不存在,就抛出EJBException对象,
      

  4.   

    那么针对增长自动主键,这种情况,在ejbCreate方法中,我们应该如何去做呢?