Spring Boot项目——jpaProperties.getHibernateProperties()的使用
背景
- 在使用SpringBoot配置多数据源时,找到了很多大牛的资料,结果在使用jpaProperties.getHibernateProperties()时一直报错。 很多资料写法如下,可是我这里就行不通
-
@Primary @Bean(name = "entityManagerFactoryPrimary") public LocalContainerEntityManagerFactoryBean entityManagerFactoryPrimary(EntityManagerFactoryBuilder builder) { return builder .dataSource(primaryDataSource)// 设置数据源 .properties(jpaProperties.getProperties())// 设置jpa配置 .properties(getVendorProperties())// 设置hibernate配置 .packages("com.xxxx.xxxxxx.xxxxxx.xxxxx.entities.superviser") //设置实体类所在位置 .persistenceUnit("primaryPersistenceUnit")// 设置持久化单元名,用于@PersistenceContext注解获取EntityManager时指定数据源 .build(); } private Map getVendorProperties() { return jpaProperties.getHibernateProperties(new HibernateSettings()); }
原因
- 我使用的SpringBoot版本是2.2.1 RELEASE 版本,这个getHibernateProperties()方法已经被PASS掉了。
解决办法
- 曲线救国,使用如下代码即可
-
@Primary @Bean(name = "entityManagerFactoryPrimary") public LocalContainerEntityManagerFactoryBean entityManagerFactoryPrimary(EntityManagerFactoryBuilder builder) { return builder .dataSource(primaryDataSource)// 设置数据源 .properties(jpaProperties.getProperties())// 设置jpa配置 .properties(getVendorProperties())// 设置hibernate配置 .packages("com.canaan.superviser.objects.rpc.entities.superviser") //设置实体类所在位置 .persistenceUnit("primaryPersistenceUnit")// 设置持久化单元名,用于@PersistenceContext注解获取EntityManager时指定数据源 .build(); } private Map getVendorProperties() { return hibernateProperties.determineHibernateProperties(jpaProperties.getProperties(), new HibernateSettings()); // return jpaProperties.getHibernateProperties(new HibernateSettings()); }
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」