0

我有一个EJB-Hibernate应用程序,目前我正在尝试集成另一个内置于Spring-Hibernate的应用程序。

现在的问题是,由于他们都使用 Hibernate,我很困惑如何集成他们的休眠配置?

同样,它们都使用不同的方式编写 Hibernate 配置,即基于 Spring 的应用程序通过 Spring beans 和 hibernate-cfg.properties 文件使用,

而 EJB 应用程序正在这样做,这是一种标准的休眠方式(即 xxx-cfg.xml 和 xxx-hbm.xml),

所以我很困惑,我的方法应该是什么?欢迎任何帮助。


对不起,我忘了提到版本-->

在 EJB Application --> EJB 2.0 and Hibernate 3.1.3 & Spring Application, Spring 3.x and Hibernate 3.2.6

在 Spring-Hibernate Application 中,它们有自己的缓存实现,目前两者都指的是单独的数据源和单独的 Db 模式。

我想集成它们,这样,两者都将具有相同的 db-schema(我将通过合并它们的模式来做到这一点,即将表等添加到当前模式)和相同的数据源(这里我们使用 JBoss 通过 xxx- 管理数据源连接ds.xml)

EJB-Hibernate Application 我们已经提到了这个数据源的 JNDI 名称,所以它指的是那个。但是在 Spring App 中,它们有各自的数据源,但我可以使用相同的 JNDI 名称使其引用相同。

请告诉我,我应该如何进行这种集成?

4

1 回答 1

0

您的信息似乎有点混乱,但我会尝试从您提到的内容中收集信息。

当您说要集成两个应用程序时,除了使用公共数据源之外,您是否试图在您的应用程序中摆脱 EJB 2 并改用 Spring ?这将需要从 EJB2 迁移到 Spring。为此,有很多这样的文章

或者,如果您想要的是两个应用程序应该独立存在但应该使用单一模式,那么正如您所说,您可以将两个模式合并为一个,在 JNDI 中注册数据源。然后使用可以在两个不同的应用程序中使用相同的数据源。EJB2 和 Spring 都可以使用 JNDI 绑定数据源。

如果两个应用程序独立存在并且其中一个正在使用休眠二级缓存(如您所述),那么您将必须小心,因为您的缓存将经常失效,因为您的数据库将在两个可以写入数据库的应用程序之间共享. 事实上,在这种情况下,只缓存永远不会改变的只读数据是明智的。

于 2012-09-17T06:45:58.367 回答