如果楼主是用oralce的数据库,它自身就有设置

解决方案 »

  1.   

    由于我让db2数据库自己产生主键所以EJBCreate才报错,我就是问怎么改写EJB才使他正常工作。
      

  2.   

    写一个方法,先取得序列值,然后传给ejbCreate当参数
      

  3.   

    怎么取得序列值?我用数据库db2,我用next val for取系列值报错。好像你的办法要用jdbc访问数据库后才得到系列值。
      

  4.   

    把home接口里相应create的改了试试,放弃参数id,把其他参数都加上。
    比如表的主键是id自动加1,还有一个name。你在home的create里本来是
    create(int id,String name)现在只要写成create(String name)就可以
    了。当然,bean里和home里的参数必须一致。
      

  5.   

    我使用MySql数据库,也有类似问题,不过MySql中带参数的ejbCreate方法不影响,不带参数的ejbCreate方法中把id赋0就可以了,MySql会自动加1。DB2没有用过,不太了解的说。
      

  6.   

    问题已经解决,多谢各位。centgo提醒了我。
    public class CabinBean implements EntityBean {  int id ;   public CabinPK ejbCreate() throws Exception {
       int _id =  (int)SequenceGen.nextVal();
       setid(id);
       ...
      }
    .
    .
    .
    }
      

  7.   

    SequenceGen这个类怎么写的啊,能不能发出来看看啊。