1.首先要明确你的主关键字和外部关键字的一致性,通过cmr的建立一定要注意字段的基类型,如果是整形数据一定要:java.lang.Integer
2.在EJB2.0的规范中,一旦建立了java.util.Collection时在EntityBean,Local中自动加载set/get  collection相应的数据

解决方案 »

  1.   

    A主 B从
    a:B = 1:N
    不要在B中设置A的主键值(外键)
    容器会完成这个工作,只要把B的集合付给A就ok了
      

  2.   

    to yeshucheng(叶澍成) :
    首先谢谢你回复了我两个帖子阿,^_^
    我的相对应字段都是number型,我的数据库时oracle
    我的问题是,要修改实体bean bcTeam的时候是否能通过bcTeam的set关系字段(Collection)
    来修改相对应的实体bean?
    to Javatomchen()
    我是这样的,但不行啊,报错了
    The cmr-field is read-only
      

  3.   

    我只有个比较笨的办法,就是在bcManage里再加一个单一的主键,而不是用原来的联合主键
      

  4.   

    是这样的,如果数据库对应的表内参数比较多,我建议用VO(value object)形式
    把它看成对象就可以,至于你的one-many:
    比如在one部分的vo,内部要把子表对象引入进来,到时只要通过get整个对象就行
    而你说的修改,其实是一样做的:(比如)
     public boolean updXX(
          VO对象 vo) {
        try {
          XXLocalHome home =getXXLocalHome();
          XXPK pk = new XXPK(  new Integer(vo.get各个部分的关键字);
          XXLocal local = home.findByPrimaryKey(pk);
          //以下除了主关键字都写上
          local.set参数(vo.get参数());
          return true;
        }
        catch (Exception e) {
               return false;
        }
      }
      

  5.   

    不过可能上面的方法比较笨,或许还有更好的办法。。
    我初步想可以不用relationship(cmr)来做,可以直接在sessionFacade去直接调用bean...
    当然这个还有待测试
      

  6.   

    谢谢,我会考虑vo的,只不过现在这个项目不行了,很紧张。
    能不能通过给关联的实体bean的关系字段赋值,来创建或修改被关联的实体bean?
    谢谢!