而且很奇怪的是无论我用getXXX还是setXXX的时候,容器都会自动的依次调用ejbLoad()和ejbStore(),这样的话我的好多方法都受到影响

解决方案 »

  1.   

    还有,刚刚发现包括我自己写的其他方法在调用之后也要自动调用ejbStore(),怎么办啊。我有个方法是deleteXXX,调用之后再来个ejbStore?明显数据库会出错,引起回滚的。
      

  2.   

    其一、 ejbLoad()和ejbStore()是实体Bean用来从持久性媒体装载和存储数据的,如果是CMP的实体Bean的话,这两个方法由容器来实现,如果是BMP的实体Bean的话,容器调用自己重载的这两个方法。
    其二、你这个deleteXXX方法的作用是干什么的,不会是删除实体Bean的某个需要持久性的属性的吧??
    关注。。
      

  3.   

    deleteXXX是用来删除某条记录的,我用的是BMP
      

  4.   

    是很奇怪,ejbLoad()和ejbStore()是容器用来同步数据库中数据的方法,如果你不修改数据,可以用标志位屏蔽ejbStore()方法,但是deleteXXX方法放在里面就不很妥当了,如果是删除本条数据,用remove方法就可以啦,如果是删除别得记录,建议放在sessionbean中,由sessionbean调用entitybean删除。去找书或者例子看看。
      

  5.   

    container为了保证与数据库里的数据同步,在操作数据库时,都回调用ejbLoad,提出最新的数据,相反对数据库操作后都会调用ejbStore.
    在cmp中这些方法都是有container来实现,在bmp中这些代码必须要你自己来实现,所以ejbStore类似于用update语句操作,ejbLoad类似于用select语句.