gpt4 book ai didi

java - hibernate 、PostgreSQL : Write to 2 different databases on different servers.

转载 作者:行者123 更新时间:2023-12-02 12:05:13 27 4
gpt4 key购买 nike

我正在开发一个 Spring-MVC 应用程序,我们在两台服务器上运行,一台是我们的测试服务器,第二台是我们的实时服务器。有什么方法可以配置 Hibernate 在两台服务器上编写任何和所有与数据库相关的查询。示例:用户 A 在实时服务器上保存了对象 A,然后在测试服务器上写入相同的对象,反之亦然不是必需的。我们的测试服务器和实时服务器都有相同的设置和相同的数据库。谢谢。

根上下文.xml:

   <beans:bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<beans:property name="driverClassName" value="org.postgresql.Driver"/>
<beans:property name="url"
value="jdbc:postgresql://localhost:PORT/DB_NAME"/>
<beans:property name="username" value="USERNAME"/>
<beans:property name="password" value="PASSWORD"/>
<beans:property name="removeAbandoned" value="true"/>
<beans:property name="removeAbandonedTimeout" value="20"/>
<beans:property name="defaultAutoCommit" value="false"/>
</beans:bean>

<!-- Hibernate 4 SessionFactory Bean definition -->
<beans:bean id="hibernate4AnnotatedSessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<beans:property name="dataSource" ref="dataSource"/>
<beans:property name="packagesToScan" value="com.tooltank.spring.model"/>
<beans:property name="hibernateProperties">
<beans:props>
<beans:prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQL9Dialect</beans:prop>
<beans:prop key="hibernate.show_sql">false</beans:prop>
<!-- <beans:prop key="hibernate.jdbc.batch_size">1000</beans:prop>-->
<beans:prop key="hibernate.hbm2ddl.auto">update</beans:prop>
<beans:prop key="cache.use_second_level_cache">true</beans:prop>
<beans:prop key="cache.use_query_cache">true</beans:prop>
<beans:prop key="hibernate.order_updates">true</beans:prop>
<beans:prop key="show_sql">false</beans:prop>
</beans:props>
</beans:property>

</beans:bean>

<hibernate.version>4.3.9.Final</hibernate.version>

如果需要更多数据,请告诉我。谢谢。

最佳答案

这并不是您所希望的那样。它们具有完全不同的事务上下文,因此您不能假装两个数据库是一个。

如果一个数据库抛出异常而另一个数据库没有抛出异常怎么办? tx 是否提交或回滚? Hibernate 当然不希望它“成功一半”。

您可以使测试服务器成为实时服务器的从属服务器,然后只写入实时服务器。这也不是一个简单的解决方案,而且可能非常愚蠢。

关于java - hibernate 、PostgreSQL : Write to 2 different databases on different servers.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46949456/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com