在Spring数据jpa中将字段标记为一个数据源的瞬态而不是另一个数据源

时间:2018-05-29 18:19:58

标签: spring-data-jpa

我有一个将数据发送到SQL Server的应用程序,我们想将它扩展为也写入另一个数据源(可能是amazon s3,但可能是常规数据库)。问题是,这个新数据库只需要我的实体类中的一部分字段。

有没有办法可以将某个字段标记为一个数据源的瞬态而不是另一个?或者我应该在存储库级别做一些事情?我正在使用Spring Data JPA,并且一直在使用Spring生成的JpaRepository。

public interface JobRepository extends JpaRepository<MyPojo, Long>{}

1 个答案:

答案 0 :(得分:1)

可以为两个不同的数据源创建两个不同的存储库接口。在这种情况下,您需要创建两个不同的实体 - 每个数据源一个,并将它们绑定在您的服务中。

对于数据源A:AEntity,ARepository 对于数据源B:BEntity,BRepository

在您的服务中,您创建了一个方法:

public AEntity createAEntityFromBEntity(BEntity bEntity);

为了能够做到这一点,您需要将一个数据源标记为@Primary。请查看this链接,了解如何使用配置详细信息创建两个不同的数据源连接。