Springboot-Jpa多数据库配置-2.0+版本
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+版本相关推荐
- 全网最全精析破解 Springboot+Jpa 对数据库增删改查
前言: 昨天做的是springboot+mybatis 对数据库进行增删改查 但是我感觉配置文件太多了 很麻烦 繁琐 今天搞一下springboot+Jpa对数据库进行增删改查, 感觉很好用 ,所以记 ...
- 图数据库 gStore 1.0 版本正式发布
2022年10月1日,面向大规模知识图谱应用的原生图数据库系统gStore 最新的1.0版本正式上线发布. gStore系统源于2011年北京大学邹磊教授在VLDB发表的论文:"gStore ...
- springboot jpa链接数据库
一.最近总看见项目中直接在代码里面写sql,而不是使用mapper配置文件,感觉对于轻量级的查询,没有多少查询语句的话,咱就不集成mybatis了,直接写sql不也很好么,于是大概研究了一下,怎么使用 ...
- springboot jpa 创建数据库以及rabbitMQ分模块扫描问题
在使用jpa过程中,如果没有在配置中加入自动创建实体对于的sql,则需要提前创建建表语句 spring.jpa.properties.hibernate.show_sql=true spring.jp ...
- springboot连接SQL数据库配置application
application.properties连接SQL数据库 application文件有两种格式,[.yaml]和[.properties]所以两种文件格式的写法也不同 yaml文件下的链接MySQ ...
- springboot JPA整合国产神通数据库(神州通用数据库)
当前国产软件比较流行,就最近做过的springboot +JPA+神通数据库的项目做下记录供有需要的同学参考. 神通数据库在springboot中的配置和大多关系型数据库基本一样的,只是由于驱动jar ...
- redis版本_全球首发|阿里云正式推出云数据库Redis6.0版本
Redis 6.0更多精彩详情 2020年6月23日,阿里云正式推出云数据库Redis 6.0版本.Redis 6.0版本为Redis开源社区于5月2日发布的全新版本,包含多项重大功能更新和大幅度的性 ...
- 全球首发|阿里云正式推出云数据库Redis6.0版本
Redis 6.0更多精彩详情 2020年6月23日,阿里云正式推出云数据库Redis 6.0版本.Redis 6.0版本为Redis开源社区于5月2日发布的全新版本,包含多项重大功能更新和大幅度的性 ...
- mysql8.0版本的服务器名称_Linux服务器配置-VSFTP服务配置(六)
上文:Linux服务器配置-VSFTP服务配置(五) 上文中已经介绍了使用数据库文件方式配置虚拟用户认证登录FTP服务器,这篇文件将介绍通过数据库方式(vsftpd服务+pam_mysql+MySQL ...
最新文章
- 属于我们的纪念日-相识一周年 - 生活至上,美容至尚!
- c# 第9节 数据类型之引用类型
- vmware提示:此虚拟机似乎正在使用中,无法取得所有权的解决办法
- java boxplot_Matlab Boxplots
- 服务器系统装软路由,服务器系统设置软路由
- STM32之外部中断
- 关于添加文件删除权限
- u深度重装系统详细教程_u深度u盘安装win10系统教程
- win10制作dos启动U盘
- android 按钮边距,安卓button代码初始化默认内边距问题
- PCL学习(四)点云转换为网格
- python运用ico图标_使用python将图片格式转换为ico格式的示例
- 《肖申克的救赎》- 阅后小记
- java ice c_ZeroC ICE之旅------java
- 图像处理中的用于消除高斯噪声的加法运算
- 滤波器频率响应的归一化
- Error response from daemon: pull access denied for registey, repository does not exist or may requir
- 每日一问 --什么是时域的波形?频域的频谱?
- Opportunities and Challenges in Code Search Tools 笔记
- 谷歌云wordpress搭建博客网站