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