关联域好象是用与,一个 ejb对应多个表的。但是最好不要用,这样对ejb的性能及对ejb的操作都会带来很大的影响。用ejb,并不以为着所有的表多建ejb,但是最好是一个ejb对应一个表。这样是最好的选者。

解决方案 »

  1.   

    虽然,在设计数据库中这些关系都可以实现,但是Entity Bean并不是数据库,它只是数据表的一个临时存储器,根本不知道表之间的关系。所以需要Relationship Fields。好好看看Mastering EJB2中的Entity Bean一章,我估计你还没弄清楚Entity Bean的工作原理。
      

  2.   

    对阿,我知道啊,entity bean开发者不需要写jdbc代码。但服务器是实现时底层用的就是jdbc,数据库的acid本身可以保证,为什么需要relationship fields?
      

  3.   

    假设又两张表,Employee, Project。如果你要获取某个项目中的所有员工,你设计了两个Entity Bean,分别对应这两张表,BeanEmp, BeanPrj。如何使用呢?如果没有Relationship Fields,BeanPrj如何知道返回哪些Employee。
    其实,Relationship Fields就相当于select * from employee, project where employee.id=project.emp_id;中的where子句的功能,起到一个连接两个Bean的内容的作用。数据库设计时保证的是关系,但在我们查询数据时,它又不能提供这种连接功能。
      

  4.   

    对阿,可以通过这种方式,但没有的话,比如在ejb 1.1中没有这种关系时,还不是可以找到吗?只不过麻烦一点。
      

  5.   

    to   jintooth(睡如猪,跑如风) :      谢谢你的回答。你说的这个我知道。     但对于你的一些话,我有疑问,比如,    “如果没有Relationship Fields,BeanPrj如何知道返
          回哪些Employee。”      这个可以通过在session bean中寻找到BeanPrj的primary key,然后通      过这个primary key 找到相应的Employee?
      

  6.   

    怎么非得用CMP呢,为什么不用BMP,觉得用BMP处多表之间的操作比CMP要灵活得多。