我有一个使用EJB2.x实体bean (BMP)的大型应用程序。众所周知,这是一个可怕的持久性策略(如有必要,我可以详细说明)。
我想开始迁移这个应用程序,以使用更具表现力、更透明、更非侵入性的持久化策略,考虑到我的公司以前使用它的经验,Hibernate 3.x是显而易见的选择。
迁移到Hibernate需要一段时间,因为应用程序中超过100个表使用实体bean。因此,我正在考虑一种分阶段的方法,在这种方法中,两个持久性策略并行运行,如果可能的话,最好同时在同一个表上运行。
我的问题是,组合这两种持久性策略的陷阱(如果有的话)是什么?他们会互相妨碍吗?
发布于 2008-10-12 23:43:55
正如jodonnel所说,你必须注意缓存,因为如果你在Hibernate中使用二级缓存,并且在Hibernate之外修改了一个表,那么Hibernate就无法知道它的缓存项已经过时了。
对于事务,它们都应该使用容器提供的JTA,因此它应该是安全的。
发布于 2008-09-16 01:48:10
我想真正需要注意的是使用Hibernate会话。Hibernate缓存数据,这可能会成为障碍。
坦率地说,我建议如果你采用Hibernate,完全放弃实体bean。在会话bean中执行Hibernate工作,并让会话bean管理事务。
或者也可以使用EJB3,它是Hibernate标准化到Java持久性API中的。
https://stackoverflow.com/questions/68614
复制相似问题