to CoolAbu(阿卜-Never Stop(★★★★): 不是呀,是不是不可以在ejbCreate()方法里走直接更新作为外键的字段呀? 我直接用就出现如下错误: javax.ejb.EJBException: [EJB:010145]When a cmp-field and a cmr-field (relationship) are mapped to the same column, the setXXX method for the cmp-field may not be called. The cmp-field is read-only.
如果我在ejbCreate中不对作为外键的字段set 而在ejbPostCreate中对cmr字段进行set则会出现以下错误: javax.ejb.EJBException: EJB Exception: : java.lang.NullPointerException at weblogic.ejb20.cache.CacheKey.(CacheKey.java:35) at weblogic.ejb20.manager.DBManager.create(DBManager.java:1176) at weblogic.ejb20.manager.DBManager.localCreate(DBManager.java:1100) at weblogic.ejb20.internal.EntityEJBLocalHome.create(EntityEJBLocalHome.java:171) at scoremanage.StuCoursePlan_p765zk_LocalHomeImpl.create(StuCoursePlan_p765zk_LocalHomeImpl.java:92) at jsp_servlet.__courseplanmanage._jspService(__courseplanmanage.java:189) 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: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.lang.NullPointerException
不是呀,是不是不可以在ejbCreate()方法里走直接更新作为外键的字段呀?
我直接用就出现如下错误:
javax.ejb.EJBException: [EJB:010145]When a cmp-field and a cmr-field (relationship) are mapped to the same column, the setXXX method for the cmp-field may not be called. The cmp-field is read-only.
而在ejbPostCreate中对cmr字段进行set则会出现以下错误:
javax.ejb.EJBException: EJB Exception: : java.lang.NullPointerException at weblogic.ejb20.cache.CacheKey.(CacheKey.java:35) at weblogic.ejb20.manager.DBManager.create(DBManager.java:1176) at weblogic.ejb20.manager.DBManager.localCreate(DBManager.java:1100) at weblogic.ejb20.internal.EntityEJBLocalHome.create(EntityEJBLocalHome.java:171) at scoremanage.StuCoursePlan_p765zk_LocalHomeImpl.create(StuCoursePlan_p765zk_LocalHomeImpl.java:92) at jsp_servlet.__courseplanmanage._jspService(__courseplanmanage.java:189) 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: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.lang.NullPointerException
帮你up吧!
而在ejbPostCreate中对cmr字段进行set如果是只有一个关联的情况下,可以成功。但是现在两个就出错啦,
多谢指点,不过我不明白,你所说的"一起set"是什么意思?
setForeignKey1(value);
setForeignKey2(value);
2.
setForeignKey2(value);
setForeignKey1(value);在ejbPostCreate中设置外健值完全可以的,
你的异常或者是因为数据库的关联限止的关系