补充一下第一个问题并不是用jndi来沟通cmp和bmp,而是因为cmp是用ejbql来查询的,如果ejbql的ejbSelect和ejbFinder中要用到bmp类的字段该怎么处理

解决方案 »

  1.   

    1.首先要说的可能你对CMP和BMP还没有充分理解(他们的机理还没有理解)一般是不会采用两个都用的方式
    2。这里如果你要得到整个表的映射可以采用VO(Value Object)的思想,可以把整个表作为对象来传输,这样对于内存的消耗相对来说小多了,而且这也是j2ee里要强调的粗粒度的的考虑
    3.这里要的双关键字或者以上其实还是可以考虑到用你的对象封装,比如创建的bean的同时可以同时创建你的主件类,但是这里就要毫你的内存。当然这个还有待考虑优化
    以上是我个人观点说错还望指正
      

  2.   

    3.BMP如果对应的表不止一个primaryKey该如何来处理呢?我所指的是findByPrimaryKey的返回类型,如果是1个的话,只要返回该字段的数据类型就可以了,而如果是2个或2个以上的话,我该怎么返回呢?不会定Obect[]或Collection吧,关键是如何来定位到那行记录?我还没得到答案:如果有2个primaryKey, type1-->Integer  type2-->String ,我在bmp里的findByPrimaryKey怎么定义???
      

  3.   

    什么TMD不算回答??没有扎实的理论基础和J2EE实践经验你怎么做EJB?如果你连BMP和CMP的区别都没弄明白你怎么可能游弋于两者之间?如果你连ORMapping的理论基础都没有你又怎么可能理解CMP?如果说要学习EJB以及相关的J2EE理论知识,又有哪一本书比Mastering EnterpriseJavaBeans2好??按照你当前的知识结构和经验如果真的要跟你讲清楚BMP和CMP的相关知识要多大篇幅才行?你自己直接看书难道不是更直接更权威吗?嗯?你回答一下我上述的几个问题看看?
      

  4.   

    楼上的,你的回答跟没说一样,我要知道还问问题干吗?既然你能回答,那你肯定精通Mastering EnterpriseJavaBeans2,那你把知道的告诉我呀,我老早就看过这个书了,哪张讲过我说的问题?而且我说的问题明眼人一看就知道初学者怎么提得出??照本宣科谁不会啊!!
      

  5.   

    第一个问题
    可以,EJB设计模式中有一种叫双重属性BEAN,就是BMP继承CMP的。
    第二个问题
    BMP可以实现多表对应,重点是你要理清楚各表之间的关系,具体可以参考EJB1.1设计模式中的从属对象模式,也可以参考《EJB编程指南(好像是这个名字)》这本书,里面有讲的。
    第三个问题
    BMP如果有多个主键,使用主键类比较合适。
      

  6.   

    用EJB的可都是大项目,没机会做,高深啊!!