弹簧&x2B;hibernate-将实体映射到不同的数据源

弹簧&x2B;hibernate-将实体映射到不同的数据源,hibernate,spring,entity,datasource,Hibernate,Spring,Entity,Datasource,我的应用程序目前在自己的数据库中处理用户。 我正在创建一个CAS应用程序,它将集中管理我的应用程序和其他应用程序的用户。此CAS应用程序将使用自己的db,其他应用程序将可以访问它。 我对包括CAS在内的所有应用程序使用相同的hibernate实体“User” 我的目标是能够配置应用程序在查找“用户”实体时是使用“本地”db还是“cas”db 此配置不必在运行时更改。它可以是spring上下文xml配置(或者只是一组不同的导入) 我不想使用额外的会话工厂。我试图沿着这条路走下去,但当我意识到我需要

我的应用程序目前在自己的数据库中处理用户。 我正在创建一个CAS应用程序,它将集中管理我的应用程序和其他应用程序的用户。此CAS应用程序将使用自己的db,其他应用程序将可以访问它。 我对包括CAS在内的所有应用程序使用相同的hibernate实体“User”

我的目标是能够配置应用程序在查找“用户”实体时是使用“本地”db还是“cas”db

此配置不必在运行时更改。它可以是spring上下文xml配置(或者只是一组不同的导入)

我不想使用额外的会话工厂。我试图沿着这条路走下去,但当我意识到我需要在web.xml中定义更多开放的会话视图过滤器时,我就陷入了困境——每个工厂一个


如何配置单会话工厂以根据某些配置从不同的数据源加载此实体(可能还有一些其他相关实体)?

了解一下关于动态数据源路由的信息。它可能会帮助您:-)

您看过Hibernate 4中的多租户支持吗

我已经看过了,觉得这对我没什么帮助。在他们的示例中,他们根据一些配置从不同的数据库加载项(或用户…)。除了用户之外,我有更多的数据,我不想将这些数据加载到另一个datasource/db。我只希望用户根据一些配置从不同的数据库加载。我刚才看过了。关于分区的第一个示例将解决这个问题。这让我看到了hibernate碎片,这反过来又让我走到了死胡同。看起来冬眠碎片有点死了。我在任何maven repo(尝试过central和jboss)上都找不到该项目。我甚至在贾瓦纳找不到它的类。它只能从hibernate.org网站下载,但我不想搞砸maven本地repo jar的安装。。。我将尝试看看他们的第二个建议-hibernate筛选器。顺便说一下,我正在使用hibernate 3.6.1-Final。Multitenance!=碎片。这是Hibernate4中引入的一个新特性。因此,如果您无法升级,请忽略这一点。不过,现在在Hibernate中,这是处理多个数据源的“正确”方法。我正在更新到4.1.0.5版本。我会看看它是否破坏了我的项目。无论如何,我的问题不是真正的多租户问题。我没有多个租户需要从不同来源加载数据。我只需要从不同的数据库加载我的用户实体。我认为分片可以工作,因为我会将用户数据库配置为分片-使用cas时,整个分片将是cas数据库,不使用时,整个分片将是应用程序本地数据库。已完成迁移到4.1.0。我查看了连接提供程序解决方案,但它与Spring的AbstractRoutingDataSource基本相同。我只需要访问用户实体的CAS db,而不是所有用户实体。它看起来像是返回到2个会话工厂,或者使用普通的老jdbc+sql。。。