在ResourceItemBean的create的方法中不应该出现setXXX(XXX是ResourceItemBean的foreign-key),因为容器会帮你加

解决方案 »

  1.   

    下面是一个学生与书本的例子,希望对你有用:
    weblogic-cmp-rdbms-jar.xml片段:
    <weblogic-rdbms-relation>
         <relation-name>student-books</relation-name>
         <weblogic-relationship-role>
             <relationship-role-name>BookCMPBeanRelationshipRole</relationship-role-name>
             <relationship-role-map>
                 <foreign-key-table>bookcmptable</foreign-key-table>
                 <primary-key-table>studentcmptable</primary-key-table>
                 <column-map>
                     <foreign-key-column>studentkey</foreign-key-column>
                     <key-column>ssn</key-column>
                 </column-map>
             </relationship-role-map>
         </weblogic-relationship-role>
     </weblogic-rdbms-relation>
    ejb-jar.xml片段:   <display-name>StudentCMPBean</display-name>
       <ejb-name>StudentCMPBean</ejb-name>
       <home>com.softvan.test.cmp.student.StudentCMPHome</home>
       <remote>com.softvan.test.cmp.student.StudentCMP</remote>
       <ejb-class>com.softvan.test.cmp.student.StudentCMPBean</ejb-class>
       <persistence-type>Container</persistence-type>
       <prim-key-class>java.lang.Integer</prim-key-class>
       <reentrant>False</reentrant>
       <cmp-version>2.x</cmp-version>
       <abstract-schema-name>StudentCMPBean</abstract-schema-name>
       <cmp-field>
           <field-name>ssn</field-name>
       </cmp-field>
       <cmp-field>
           <field-name>name</field-name>
       </cmp-field>
       <cmp-field>
           <field-name>grade</field-name>
       </cmp-field>
       <primkey-field>ssn</primkey-field>
       <resource-ref>
           <description />
           <res-ref-name>jdbc/OraclePool</res-ref-name>
           <res-type>javax.sql.DataSource</res-type>
           <res-auth>Container</res-auth>
       </resource-ref>
    </entity><entity>
       <display-name>BookCMPBean</display-name>
       <ejb-name>BookCMPBean</ejb-name>
       <home>com.softvan.test.cmp.book.BookCMPHome</home>
       <remote>com.softvan.test.cmp.book.BookCMP</remote>
       <ejb-class>com.softvan.test.cmp.book.BookCMPBean</ejb-class>
       <persistence-type>Container</persistence-type>
       <prim-key-class>com.softvan.test.cmp.book.BookCMPPK</prim-key-class>
       <reentrant>False</reentrant>
       <cmp-version>2.x</cmp-version>
       <abstract-schema-name>BookCMPBean</abstract-schema-name>
       <cmp-field>
           <field-name>isbn</field-name>
       </cmp-field>
       <cmp-field>
           <field-name>copynumber</field-name>
       </cmp-field>
       <cmp-field>
           <field-name>title</field-name>
       </cmp-field>
       <cmp-field>
           <field-name>author</field-name>
       </cmp-field>
       <cmp-field>
           <field-name>studentkey</field-name>
       </cmp-field>
       <resource-ref>
           <description />
           <res-ref-name>jdbc/OraclePool</res-ref-name>
           <res-type>javax.sql.DataSource</res-type>
           <res-auth>Container</res-auth>
       </resource-ref>
    </entity>
    书本ejb的远程接口加入下面关联方法:
    public void setStudentkey(Integer studentkey) throws RemoteException;
    public Integer getStudentkey() throws RemoteException;
      

  2.   

    CMR字段不用设FK,部署时会自动加上的http://www-900.ibm.com/developerWorks/cn/cnedu.nsf/xml-onlinecourse-bytitle
      

  3.   

    你建立关系时所用的字段,set或者create时不能直接用,而是要set整个类