我想也是这样,可是会出错的呀~!
javax.ejb.CreateException: [EJB:010148]In EJB 'StuGrade', the primary key field 'gradeid' was not set during ejbCreate. All primary key fields must be initialized during ejbCreate.

解决方案 »

  1.   

    不需要,但是你需要设定主键字段所使用的 Generator Type,我用的是 JB9 + WebLogic 6.x ,双击具体 EntityBean 的图形标志,出现其属性页面时,选中下面的 WebLogic 6.x General 标签,然后看到有关于 Automatic Key Generation 的几个选项,选择你想要的就行了,其他的 IDE 和 AppServer 估计也是差不多的
      

  2.   

    不行呀,按上面的作会出下列错误:
    javax.ejb.EJBException: EJB Exception:: java.sql.SQLException: Transaction BEA1-001B4AF7DE917F28EDB9 not active anymore. tx status = Marked rollback. [Reason=weblogic.transaction.internal.AppSetRollbackOnlyException] at weblogic.jdbc.jts.Driver.getTransaction(Driver.java:367) at weblogic.jdbc.jts.Driver.connect(Driver.java:126) at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:305) at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.getConnection(RDBMSPersistenceManager.java:2247) at scoremanage.StuGrade_3gqsd2__WebLogic_CMP_RDBMS.__WL_create(StuGrade_3gqsd2__WebLogic_CMP_RDBMS.java:2310) at scoremanage.StuGrade_3gqsd2__WebLogic_CMP_RDBMS.ejbPostCreate(StuGrade_3gqsd2__WebLogic_CMP_RDBMS.java:2254) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at weblogic.ejb20.manager.DBManager.create(DBManager.java:1151) at weblogic.ejb20.manager.DBManager.localCreate(DBManager.java:1100) at weblogic.ejb20.internal.EntityEJBLocalHome.create(EntityEJBLocalHome.java:171) at scoremanage.StuGrade_3gqsd2_LocalHomeImpl.create(StuGrade_3gqsd2_LocalHomeImpl.java:83) at jsp_servlet.__scoremanage._jspService(__scoremanage.java:166) at weblogic.servlet.jsp.JspBase.service(JspBase.java:33) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:971) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:402) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:446) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6350) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3635) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170) ; nested exception is: java.sql.SQLException: Transaction BEA1-001B4AF7DE917F28EDB9 not active anymore. tx status = Marked rollback. [Reason=weblogic.transaction.internal.AppSetRollbackOnlyException]
      

  3.   

    在weblogic-cmp-rdbms-jar.xml中加入
    <weblogic-rdbms-jar>     
        <weblogic-rdbms-bean> 
            <delay-database-insert-until>commit</delay-database-insert-until>
            <automatic-key-generation>
                <generator-type>NAMED_SEQUENCE_TABLE</generator-type>
                <generator-name>TABLE_SEQUENCE</generator-name>
                <key-cache-size>10</key-cache-size>
            </automatic-key-generation>
        </weblogic-rdbms-bean>
    </weblogic-rdbms-jar>
    其中TABLE_SEQUENCE是一张维护主健的表,只能有一个字段SEQUENCE int,初始化为0
      

  4.   

    如果是wsad+websphere 5如何设置Automatic Key,好象不支持吧?该怎么做呢?
      

  5.   

    to TLink(小小) :
       你好,多谢指点,照你所述,试了几次,还是出现以前的错误!
      

  6.   

    SQL SERVER2000
    <automatic-key-generation>
        <generator-type>SQLServer2000</generator-type>
    </automatic-key-generation>
    若是Oracle,则应该加上
    <automatic-key-generation>
    <generator-type>Oracle</generator-type> <generator_name>test_sequence</generator-name>
             <key-cache-size>10</key-cache-size>
    </automatic-key-generation>
    然后在发布时不要直接在JBuilder中发布,不然后会自动删除手动添加的信息的