1.bmp给开发人员更多的灵活性,其代价是自己编写绝大多数的代码,重点是集中在编写ejbCreate,ejbLoad,ejbStore,ejbRemote.他们分别对应于SQL的INSERT,SELECT,UPDATE,DELETE.就是说要手工进行SQL语句的编写。在灵活多变的场合比较适合。
2.cmp由容器管理这些事务,灵活性较低。

解决方案 »

  1.   

    我的意思是说
    既然BMP与CMP都作为EntityBean,他们能实现的功能就应该是一样的,也就是说BMP能实现的用CMP也能实现,问题只在于复杂性与灵活性,这些都是具体实现上的问题
    既然有BMP与CMP之分,我想对应不同的项目(或者说对应不同的应用)应该就有他们的适用范围
    所以,在这个层次上,也想征求一下大家的意见
      

  2.   

    为何使用 BMP?为了存储 CMP 现阶段所不能处理的复杂的 Bean 
    包含如下数据的实体 Bean: 
    内嵌 Java 对象 
    对象的集合 
    对其它 Bean 的引用 
    CMP 所不支持的数据源 
    Container-Managed Persistence容器管理 Bean 的生命周期--何时创建、载入、存储和删除 
    容器提供存储机制--如何创建、载入、存储和删除 
    Bean 部属人员定义 Bean 和数据库之间的映射 
      

  3.   

    我感觉对主从表的操过或多表的操过用BMP,较灵活,cmp对于单表操作,其它的几位大侠已经说了,bmp灵活,cmp不灵活。我也不知道我说的对不对
    :)
      

  4.   

    To chiliast:
        你说得没错,作为实体组件他们确实能够实现相同的功能。但如果说“BMP能实现的用CMP也能实现”是欠妥的,因为他们并没有包容关系。相反BMP能够实现的东西CMP可能完成不了。也不能说在一个项目中就必须使用其中的一种实体组件,在实际应用中可能需要各种组件相互搭配组合使用。因此,我觉得这两个实体bean,不应该严格的界定什么时候就需要用或必须用。而是应该根据实际需要,进行取舍组合。否则我们等于捆住了自己的手脚!