spring boot jpa 忽略表名大小写问题

spring boot jpa 忽略表名大小写问题

spring boot 2.3.5 mysql 8
由于某个项目中表名都是大写,代码中的table注解都是小写,解决方案
在这里插入图片描述
在这里插入图片描述

配置类

@Component
public class IgnoreCaseConfig extends PhysicalNamingStrategyStandardImpl {
 
    private static final long serialVersionUID = 1383021413247872469L;

    @Override
    public Identifier toPhysicalTableName(Identifier name, JdbcEnvironment context) {
        // 将表名全部转换成大写
        String tableName = name.getText().toUpperCase();
        return Identifier.toIdentifier(tableName);
    }
}

yml文件

  jpa:
    show-sql: true
    hibernate:
      naming:
        physical-strategy:  cn.onefox.kettle.IgnoreCaseConfig
      physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
    properties:
      hibernate:
        format_sql: true
        show_sql: true
        current_session_context_class: org.springframework.orm.hibernate5.SpringSessionContext
        dialect: org.hibernate.dialect.MySQL5Dialect

在这里插入图片描述

在启动查询都不会因为大小写问题而查不到表了

Spring Boot整合PgSQL并设置大小写不敏感,需要进行以下步骤: 1. 在Spring Boot的配置文件(application.properties或application.yml)中,添加以下配置项: ```yaml spring.datasource.url=jdbc:postgresql://localhost:5432/your_database?stringtype=unspecified spring.datasource.username=your_username spring.datasource.password=your_password spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQL95Dialect spring.jpa.hibernate.ddl-auto=none spring.jpa.properties.hibernate.default_schema=your_schema_name spring.jpa.properties.hibernate.globally_quoted_identifiers=true ``` 其中,`your_database`是你的数据库名称,`your_username`和`your_password`是你的数据库登录用户名和密码,`your_schema_name`是你的数据库模式名称。 2. 在主启动类上添加`@EnableJpaRepositories`注解,启用JPA Repositories的自动配置。 3. 创建实体类时,给需要忽略大小写的字段添加`@Column`注解,并设置`collation`属性为`"C"`。 ```java @Entity @Table(name = "your_table") public class YourEntity { //其他字段... @Column(name = "your_column", collation = "C") private String yourColumn; //getters和setters... } ``` 这样,当对该字段进行查询时,将忽略大小写。 4. 使用JpaRepository进行查询时,需要指定IgnoreCase。 ```java public interface YourRepository extends JpaRepository<YourEntity, Long> { List<YourEntity> findByYourColumnIgnoreCase(String yourValue); } ``` 这样,当调用`findByYourColumnIgnoreCase`方法时,将忽略大小写进行查询。 通过以上步骤,你就成功地将大小写设置为不敏感,并完成了Spring Boot与PgSQL的整合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值