Hibernate与不同的数据库交谈

时间:2010-11-16 00:41:54

标签: database hibernate postgresql sharding

我需要我的应用程序与两个不同的数据库进行通信,这两个数据库本身都是复制的(使用Postgres流复制)。原因是我想要对一个数据库进行所有读取并针对另一个进行写入。

我在我的应用程序中使用了hibernate。是否有开箱即用的方法来实现这一目标?

-Thanks

编辑:是的,请评论我想要实现的目标是否合理。

2 个答案:

答案 0 :(得分:1)

Hibernate支持分片。看看它是否对您有所帮助:http://www.hibernate.org/subprojects/shards.html

如果您使用的是spring,那么我知道有一种方法可以动态切换DataSource。查找更多信息here

这是来自stackoverflow的类似问题: Handling Multiple databases with NHibernate in a single application

在其他论坛讨论中也是同样的问题: http://forum.springsource.org/showthread.php?t=12665

答案 1 :(得分:0)

过去我只生成了两个会话工厂,其中一个用于只读工作块,另一个用于读写工作块。我构建了读写工厂,然后将配置更改为具有不同的连接提供程序,并添加拦截器以捕获任何修改尝试并构建第二个。

这种方法的一个问题是L2缓存一致性,尽管这是Hibernate缓存和复制数据库的一般问题。