1.动态改变EJB QL的内容。其实,我们来看看CMP EJB的原理就知道了。其实在底层,系统还是要用JDBC使用数据库的。比如,在WebLogic中,try {
      if (__WL_verbose) {
        Debug.say("__WL_loadGroup0 for pk=" + __WL_ctx.getPrimaryKey());
      }      java.lang.String __WL_pk = (java.lang.String) __WL_ctx.getPrimaryKey();      __WL_con = __WL_pm.getConnection();      java.lang.String __WL_query = 
        "SELECT WL0.maxvalue, WL0.minvalue, WL0.signon, WL0.techniqueitem, WL0.types, WL0.units  FROM techniquespec WL0  WHERE WL0.techniqueitem = ? "  +
        selectForUpdate;      __WL_stmt = __WL_con.prepareStatement(__WL_query);这个是服务器生成的cmp代码,其中本人的EJB QL是这样写到:SELECT OBJECT(p) from Techniquespec AS p所以要动态改变较为困难。你为什么不改用session bean呢?这样查找的sql好写。2.自己写一个primary class。

解决方案 »

  1.   

    如果entity bean 最好用bmp
    这样你想怎么写就怎么写,在速度上还是session bean 快
      

  2.   

    我觉得,虽然CMP在EJB2.0得到很大的改善,但是实际项目中,还是无法满足需求,很多的事情还是只能用BMP。
      

  3.   

    对于第二个问题,我是写了一个pk class,但是在写部署文件时,我应该如何为该主键类中各个主键指定不同的产生方法?比如说:一个主键采用数据库的序列产生,而另一个直接使用数据库的触发器产生。