需要通过使用VO模式方式。也就是说你将你需要setter的字段包装成另一个可以序列化的JavaBean,当你在进行更新操作的时候,就直接setter这个javabean。那么你的程序的效率就提高了。

解决方案 »

  1.   

    那我每调一次javabean中某个字段的setter方法,其实还是调用cmp中对应字段setter方法,岂不仍要多次更新?你的意思是不是这样:public void modifyUserService(util.UserServiceDetails usd) {
        /**@todo Complete this method*/
        try{
          UserServicesEJBPK pk=new UserServicesEJBPK(usd.getLabip(),usd.getLabloginname());
          LocalUserServices lus = userservicehome.findByPrimaryKey(pk);
          lus.setCloseDate(usd.getClosedate());
          lus.setEnrollDate(usd.getEnrolldate());
          lus.setLabLoginPassword(usd.getLabloginpassword());
          lus.setPricingId(usd.getPricingid());
          lus.setUserId(usd.getUserid());
          lus.setUserStatus(usd.getUserstatus());
        }catch(Exception e){
          throw new EJBException(e.getMessage());
        }
      }UserServiceDetails ---UserService Bean的包装类。
      

  2.   

    setter不是更新内存中的entitybean吗?难道没调用一次setter就更新一次数据库?
      

  3.   

    在这种情况下不要使用cmp或bmp
    而应该使用dao、data access command bean 或 jdbc for reading 模式
    你可以参考<ejb模式>
      

  4.   

    真是一家有一家的说法,我去J道的论坛,J道这样答复我:Re: entity bean如何进行数据的大量更新  发表时间: 2003年09月02日 09:31:18   回复  
     
    用DAO一般适合读取,不推荐更新数据。使用BMP是一个办法,这样,你可以使用SQL语句解决大量字段一次更新的问题。 
      

  5.   

    http://expert.csdn.net/Expert/topic/2212/2212259.xml?temp=.6948358
      

  6.   

    确切的说,J2EE是不赞同使用ENTITYBEAN来最数据库进行批量的处理的,本身,对ENTITYBEAN的调用就是很耗资源的,所以,很是赞同netcobol(初学者)的说法,这也是EJB模式上建议的。