pom.xml增加:

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

配置表同JdbcTemplate配置.

主数据源:

@Configuration@EnableTransactionManagement@EnableJpaRepositories(entityManagerFactoryRef = "entityManagerFactoryPrimary",        transactionManagerRef = "transactionManagerPrimary",        basePackages = {"com.example.demo.p"})public class PrimaryConfig {    @Bean(name = "primaryDataSource")    @Primary    @Qualifier("primaryDataSource")    @ConfigurationProperties(prefix="spring.datasource.primary")    public DataSource primaryDataSource() {        return DataSourceBuilder.create().build();    }

    @Autowired    @Qualifier("primaryDataSource")    private DataSource primaryDatasource;

    //@Primary    //@Bean(name = "entityManagerPrimary")    //public EntityManager entityManager(EntityManagerFactoryBuilder builder) {    //    return entityManagerFactoryPrimary(builder).getObject().createEntityManager();    //}

    //@Autowired    //private JpaProperties jpaProperties;

    //private Map<String, Object> getVendorProperties() {    //    return jpaProperties.getHibernateProperties(new HibernateSettings());//与1.5版本不同,注意.    //}

    @Primary    @Bean(name = "entityManagerFactoryPrimary")    public LocalContainerEntityManagerFactoryBean entityManagerFactoryPrimary(EntityManagerFactoryBuilder builder) {        return builder.                dataSource(primaryDatasource)                //.properties(getVendorProperties())                .packages("com.example.demo.p")                .persistenceUnit("primaryPersistenceUnit")                .build();    }

    @Primary    @Bean(name = "transactionManagerPrimary")    public PlatformTransactionManager transactionManagerPrimary(EntityManagerFactoryBuilder builder) {        return new JpaTransactionManager(entityManagerFactoryPrimary(builder).getObject());    }}

主Entity:

@Entity@Table(name = "xx")public class Dtl {    @Id    @Column(name = "id")    private Long id;

    @Column(name = "TICKER_SYMBOL")    private String tickerSymbol;

    public Dtl() {}

    public Dtl(String tickerSymbol) {        this.tickerSymbol = tickerSymbol;    }

    public Long getId() {        return id;    }

    public String getTickerSymbol() {        return tickerSymbol;    }

    public void setTickerSymbol(String tickerSymbol) {        this.tickerSymbol = tickerSymbol;    }}

主Repository:

public interface GetDtlP extends JpaRepository<Dtl, Long> {    List<Dtl> findByTickerSymbol(String tickerSymbol);}

次数据源:

@Configuration@EnableTransactionManagement@EnableJpaRepositories(entityManagerFactoryRef = "entityManagerFactorySecondary",        transactionManagerRef = "transactionManagerSecondary",        basePackages = {"com.example.demo.s"})public class SecondaryConfig {    @Bean(name = "secondaryDataSource")    @Qualifier("secondaryDataSource")    @ConfigurationProperties(prefix="spring.datasource.secondary")    public DataSource secondaryDataSource() {        return DataSourceBuilder.create().build();    }

    @Autowired    @Qualifier("secondaryDataSource")    private DataSource secondaryDataSource;

    @Autowired    private JpaProperties jpaProperties;

    private Map<String, Object> getVendorProperties() {        return jpaProperties.getHibernateProperties(new HibernateSettings());    }

    @Bean(name = "entityManagerFactorySecondary")    public LocalContainerEntityManagerFactoryBean entityManagerFactorySecondary(EntityManagerFactoryBuilder builder) {        return builder.                dataSource(secondaryDataSource)                .properties(getVendorProperties())                .packages("com.example.demo.s")                .persistenceUnit("SecondaryPersistenceUnit")                .build();    }

    @Bean(name = "entityManagerSecondary")    public EntityManager entityManager(EntityManagerFactoryBuilder builder) {        return entityManagerFactorySecondary(builder).getObject().createEntityManager();    }

    @Bean(name = "transactionManagerSecondary")    public PlatformTransactionManager transactionManagerSecondary(EntityManagerFactoryBuilder builder) {        return new JpaTransactionManager(entityManagerFactorySecondary(builder).getObject());    }}

次Entity:

@Entity@Table(name = "xx")public class Dtl {    @Id    @Column(name = "id")    private Long id;

    @Column(name = "TICKER_SYMBOL")    private String tickerSymbol;

    public Dtl() {}

    public Dtl(String tickerSymbol) {        this.tickerSymbol = tickerSymbol;    }

    public Long getId() {        return id;    }

    public String getTickerSymbol() {        return tickerSymbol;    }

    public void setTickerSymbol(String tickerSymbol) {        this.tickerSymbol = tickerSymbol;    }}

次Repository:

public interface GetDtlS extends JpaRepository<Dtl, Long> {    List<Dtl> findByTickerSymbol(String tickerSymbol);}

测试:

@RunWith(SpringRunner.class)@SpringBootTestpublic class JpaTest {

    @Autowired    protected GetDtlP getDtlP;

    @Autowired    protected GetDtlS getDtlS;

    @Test    public void test() throws Exception {        List a = getDtlP.findByTickerSymbol("3");        List b = getDtlS.findByTickerSymbol("3");        Assert.assertEquals(a, b);    }}

转载于:https://www.cnblogs.com/ylpb/p/9209802.html

Springboot-Jpa多数据库配置-2.0+版本相关推荐

  1. 全网最全精析破解 Springboot+Jpa 对数据库增删改查

    前言: 昨天做的是springboot+mybatis 对数据库进行增删改查 但是我感觉配置文件太多了 很麻烦 繁琐 今天搞一下springboot+Jpa对数据库进行增删改查, 感觉很好用 ,所以记 ...

  2. 图数据库 gStore 1.0 版本正式发布

    2022年10月1日,面向大规模知识图谱应用的原生图数据库系统gStore 最新的1.0版本正式上线发布. gStore系统源于2011年北京大学邹磊教授在VLDB发表的论文:"gStore ...

  3. springboot jpa链接数据库

    一.最近总看见项目中直接在代码里面写sql,而不是使用mapper配置文件,感觉对于轻量级的查询,没有多少查询语句的话,咱就不集成mybatis了,直接写sql不也很好么,于是大概研究了一下,怎么使用 ...

  4. springboot jpa 创建数据库以及rabbitMQ分模块扫描问题

    在使用jpa过程中,如果没有在配置中加入自动创建实体对于的sql,则需要提前创建建表语句 spring.jpa.properties.hibernate.show_sql=true spring.jp ...

  5. springboot连接SQL数据库配置application

    application.properties连接SQL数据库 application文件有两种格式,[.yaml]和[.properties]所以两种文件格式的写法也不同 yaml文件下的链接MySQ ...

  6. springboot JPA整合国产神通数据库(神州通用数据库)

    当前国产软件比较流行,就最近做过的springboot +JPA+神通数据库的项目做下记录供有需要的同学参考. 神通数据库在springboot中的配置和大多关系型数据库基本一样的,只是由于驱动jar ...

  7. redis版本_全球首发|阿里云正式推出云数据库Redis6.0版本

    Redis 6.0更多精彩详情 2020年6月23日,阿里云正式推出云数据库Redis 6.0版本.Redis 6.0版本为Redis开源社区于5月2日发布的全新版本,包含多项重大功能更新和大幅度的性 ...

  8. 全球首发|阿里云正式推出云数据库Redis6.0版本

    Redis 6.0更多精彩详情 2020年6月23日,阿里云正式推出云数据库Redis 6.0版本.Redis 6.0版本为Redis开源社区于5月2日发布的全新版本,包含多项重大功能更新和大幅度的性 ...

  9. mysql8.0版本的服务器名称_Linux服务器配置-VSFTP服务配置(六)

    上文:Linux服务器配置-VSFTP服务配置(五) 上文中已经介绍了使用数据库文件方式配置虚拟用户认证登录FTP服务器,这篇文件将介绍通过数据库方式(vsftpd服务+pam_mysql+MySQL ...

最新文章

  1. 属于我们的纪念日-相识一周年 - 生活至上,美容至尚!
  2. c# 第9节 数据类型之引用类型
  3. vmware提示:此虚拟机似乎正在使用中,无法取得所有权的解决办法
  4. java boxplot_Matlab Boxplots
  5. 服务器系统装软路由,服务器系统设置软路由
  6. STM32之外部中断
  7. 关于添加文件删除权限
  8. u深度重装系统详细教程_u深度u盘安装win10系统教程
  9. win10制作dos启动U盘
  10. android 按钮边距,安卓button代码初始化默认内边距问题
  11. PCL学习(四)点云转换为网格
  12. python运用ico图标_使用python将图片格式转换为ico格式的示例
  13. 《肖申克的救赎》- 阅后小记
  14. java ice c_ZeroC ICE之旅------java
  15. 图像处理中的用于消除高斯噪声的加法运算
  16. 滤波器频率响应的归一化
  17. Error response from daemon: pull access denied for registey, repository does not exist or may requir
  18. 每日一问 --什么是时域的波形?频域的频谱?
  19. Opportunities and Challenges in Code Search Tools 笔记
  20. 谷歌云wordpress搭建博客网站

热门文章

  1. es6的Map()构造函数
  2. Android 微信分享图片
  3. Tensorflow笔记(基础): 图与会话,变量
  4. 20145206邹京儒《网络对抗》逆向及Bof基础实践
  5. lua math.random()
  6. 锁大全与 GDB调试
  7. 关于meta便签详解
  8. GridView 移除模板列
  9. 3.3 1!到n!的和
  10. 朱晔和你聊Spring系列S1E3:Spring咖啡罐里的豆子