Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Spring JPA持久实体管理器时如何处理角色交换?_Java_Spring_Hibernate_Maven_Spring Data Jpa - Fatal编程技术网

Java 使用Spring JPA持久实体管理器时如何处理角色交换?

Java 使用Spring JPA持久实体管理器时如何处理角色交换?,java,spring,hibernate,maven,spring-data-jpa,Java,Spring,Hibernate,Maven,Spring Data Jpa,我正在开发一个将使用持久性Spring JPA entitymanager的应用程序。我们的生产数据库位于两台服务器上,这两台服务器偶尔会交换角色,以确定哪一台是活动的,哪一台是备份的。entitymanager在角色交换方面会有任何问题吗?如果是,最好的处理方法是什么 import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @Repository public class Car

我正在开发一个将使用持久性Spring JPA entitymanager的应用程序。我们的生产数据库位于两台服务器上,这两台服务器偶尔会交换角色,以确定哪一台是活动的,哪一台是备份的。entitymanager在角色交换方面会有任何问题吗?如果是,最好的处理方法是什么

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Repository
public class CarolJpaDao
{
    @PersistenceContext
    private EntityManager entityManager;
pom:


org.springframework.boot
spring引导启动器数据jpa
org.springframework.boot
弹簧靴启动器jdbc

实体管理器不知道服务器,连接知道。只要给实体管理器的连接“指向”正确的数据库,就可以了。如果数据库的更改使其在事务中间变得不可用,则可能导致问题。

您可以实现一个连接数据源,该数据源“知道”witch服务器已启动并提供正确的连接。数据库上也可以有一个透明地处理角色交换的配置。这将取决于您的设置

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency> 
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>