代码之家  ›  专栏  ›  技术社区  ›  Andrew Swan

混合EJB2.xBMP实体bean和Hibernate3.x

  •  6
  • Andrew Swan  · 技术社区  · 17 年前

    我有一个使用EJB2.X实体bean(BMP)的大型应用程序。众所周知,这是一种可怕的持久性策略(如有必要,我可以详细说明)。

    我想开始迁移这个应用程序以使用一个更具表现力、透明和无创的持久性策略,并且考虑到我公司以前的经验,Hibernate3.x是很明显的选择。

    迁移到Hibernate需要一段时间,因为应用程序中有100多个表使用实体bean。因此,我正在研究一种分阶段的方法,其中两个持久性策略并行运行,如果可能的话,最好是同时在同一个表上运行。

    我的问题是,将这两种持久性策略结合起来有什么陷阱(如果有的话)?他们会妨碍彼此吗?

    2 回复  |  直到 17 年前
        1
  •  2
  •   Damien B    17 年前

    正如Jodonnel所说,您必须注意缓存,因为如果您在Hibernate中使用二级缓存,并且在Hibernate之外修改了一个表,那么Hibernate就无法知道其缓存项已过时。

    对于事务,它们都应该使用容器提供的JTA,因此应该是安全的。

        2
  •  2
  •   jodonnell    17 年前

    我想真正要小心的是使用休眠会话。Hibernate缓存东西,这可能会妨碍。

    坦率地说,我建议您采用Hibernate,完全放弃实体bean。在会话bean中进行休眠工作,并让会话bean管理您的事务。

    或者交替使用EJB 3,它是Hibernate标准化到Java持久化API中的。

    推荐文章