同福

JPA Hibernate遇到数据表字段默认将驼峰命名强制转换为下划线命名的问题【20211031】

介绍

介绍

福哥在使用hibernate构建项目模型的时候,发现我的实体对象里面写的映射的字段名称和程序实际映射的字段名称不一致,福哥写的是“userName”,而实际程序映射的却是“user_name”,要不要这么无耻啊??

甚至hibernate的审查程序还“帮”福哥建立了这些下划线字段。。。

home/topic/2021/1028/11/975c4bc93d4564d6c67fbd4caf179fe8.png

解决

原来hibernate默认的数据库字段命名策略是下划线形式的,也就是全部都是小写,然后用下划线分隔多个单词的策略。福哥不喜欢这种形式的命名策略,主要是它形成的字段名称太长了。

要解决这个问题就需要在application.properties配置文件里面指定hibernate的数据库字段命名策略。

驼峰命名

因为hibernate默认是下划线形式的,如果要改成驼峰形式的需要增加如下的设定。

spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

下划线命名

默认hibernate就是下划线形式的,如果要用下划线形式可以去掉这行配置就可以了。

当然强迫症童鞋可以设置下面这个设定来明确指定下划线为映射字段的策略。

spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy

测试

再来测试JPA程序,正常了~~

home/topic/2021/1028/11/83402091d4d6e121d67940b9c32c7d29.png