我有一个Spring-Hibernate. EJB-Hibernate应用程序,目前我正在尝试集成另一个在中构建的应用程序。
现在的问题是,由于他们都在使用Hibernate,我很困惑如何集成他们的hibernate信任?
同样,他们都使用不同的方式编写Hibernate吐露,即基于Spring的应用程序通过Spring和hibernate-cfg.properties文件使用,
而EJB应用程序则采用标准的hibernate方式(即xxx-cfg.xml和xxx-hbm.xml),
所以我很困惑,我该怎么做呢?欢迎任何帮助。
对不起,我忘了提到版本->
在EJB应用程序->EJB2.0和Hibernate 3.1.3 & Spring应用程序中,Spring3.x和Hibernate 3.2.6
在Spring应用程序中,它们有自己的缓存实现,目前它们都是指单独的数据源和单独的Db-模式。
我希望对它们进行集成,以便两者具有相同的db-schema (我将通过合并它们的模式,即将表等合并到当前模式)和相同的数据源(这里我们使用JBoss通过xxx-ds.xml管理数据源连接)。
EJB-Hibernate应用程序我们已经提到了这个数据源的JNDI名称,所以它引用了这个名称。但是在Spring中,它们有各自独立的数据源,但我可以使用相同的JNDI名称使其引用相同。
请告诉我,我该怎么做这个整合?
发布于 2012-09-17 06:45:58
你的信息似乎有点混乱,但我会尝试从你提到的收集。
当您说要集成两个应用程序时,除了使用公共数据源之外,您是否还试图在应用程序中去掉EJB 2,转而使用Spring呢?这将需要从EJB2迁移到Spring。为此,有许多类似这 one的文章。
或者,如果您希望两个应用程序都独立存在,但应该使用单个模式,那么正如您所说的,您可以将两个模式合并为一个,在JNDI中注册数据源。然后use可以在两个不同的应用程序中使用相同的数据源。EJB2和Spring都可以使用JNDI绑定的数据源。
如果两个应用程序都独立存在,其中一个应用程序正在使用hibernate二级缓存(正如您提到的那样),那么您必须小心,因为您的缓存将经常失效,因为您的数据库将在可以写入数据库的两个应用程序之间共享。事实上,在这种情况下,明智的做法是只缓存,只缓存只读数据,这些数据永远不会改变。
https://stackoverflow.com/questions/12429376
复制相似问题