我觉得你的类写的有点问题
如果你把他们的关系设计成双向多对一映射,属性定义如下:
Card:int cardID ,String cardHolder ,Collection recoders
他的构造函数Card(int cardID, String cardHolder);
而不应该是Card(int cardID, String cardHolder ,Collection records);
实例化时:
create(134,"toxophilite");
setRecorders(recorders);同理BorrowRecord:int recordID,Date date ,Card card
不要int cardID;
实例化时:
create(134,"2004-23-12");
setCard(card);

解决方案 »

  1.   

    感谢yingtju(蚂蚁)的回复,照你的方法做,在bean层应该是没有问题的,但在数据库表中,borrow_record表里必须有cardID字段啊,不然数据库无法存储card和borrow_record的关系了,而这个cardID字段如何持久化呢?
      

  2.   

    可以在部署文件中设置,jbosscmp-jdbc.xml,给你个例子
        <ejb-relation>
          <ejb-relation-name>CardsHaveRecords</ejb-relation-name>      <foreign-key-mapping/>      <ejb-relationship-role>
              <ejb-relationship-role-name>RecordsOfCard</ejb-relationship-role-name>
      <key-fields/>      </ejb-relationship-role>
          <ejb-relationship-role>
              <ejb-relationship-role-name>CardHasBooks</ejb-relationship-role-name>
              <key-fields>
                 <key-field>
                   <field-name>cardID</field-name>
                   <column-name>cardID</column-name>
                 </key-field>
              </key-fields>      </ejb-relationship-role>
        </ejb-relation>
    手动编写很困难,建议用工具如eclipse+lomboz
      

  3.   

    噢,你用weblogic,我学习ejb一直用jboss
    weblogic的相关配置我不熟悉,原理应该是相同得,你自己去查一下把
      

  4.   

    OK,终于搞定了:)
    多谢大家了,尤其是yingtju(蚂蚁),希望大家共同进步。