SpringBoot-Data-JPA2.0命名策略详解

最近有个项目因为命名策略的原因导致数据库表的不符合标准,所以看了下源码,废话不多说上代码!

现有的命名策略

  1. jpa现有的命名策略设置:hibernate.implicit_naming_strategy(隐式),hibernate.physical_naming_strategy(物理显示)
  2. implicit_naming_strategy 有5个策略:实现ImplicitNamingStrategy接口,其中SpringImplicitNamingStrategy策略是实现了ImplicitNamingStrategyJpaCompliantImpl只是重写了关联表的表名方法
    前4中基于hibernate
  3. physical_naming_strategy 有2个策略:实现PhysicalNamingStrategy接口,
    分别是PhysicalNamingStrategyStandardImpl、SpringPhysicalNamingStrategy。其中SpringPhysicalNamingStrategy 会将所有的大写都转成小写并加"_". 在这里插入图片描述

项目大概

使用SpringBoot2.4.2,mysql5.7
项目目录: 我这里因为项目需要用的是多数据源,隐式策略为默认,数据源1物理策略默认,数据源2物理策略为 SpringPhysicalNamingStrategy在这里插入图片描述

数据源读取配置文件并注入
@Configuration
public class DataSourceConfig {
   

    @Bean(name = "primaryDataSource")
    @Primary
    @ConfigurationProperties(prefix = "spring.datasource.primary")
    public DataSource primaryDataSource(){
   return DataSourceBuilder.create().build();
    }

    @Bean(name = "secondDataSource")
    @ConfigurationProperties(prefix = "spring.datasource.second")
    public DataSource secondDataSource(){
   return DataSourceBuilder.create().build();
    }
}

**主数据源**
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(entityManagerFactoryRef = "primaryEntityManagerFactory", // 配置连接工厂 entityManagerFactory
        transactionManagerRef = "primaryTransactionManager"
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值