Hibernate自动将字段名称从驼峰式转换为蛇形

时间:2019-09-22 06:32:52

标签: mysql hibernate jdbc spring-data-jpa jpa-2.1

我创建了一个具有所有驼峰案例名称的实体,如下所示:

@Entity(name = "myRecord")
@Table(name = "myRecord")
public class MyDO {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    @Column( updatable = false, nullable = false, unique = true)
    private Long myId;

    @Column(updatable = false, nullable = false)
    private Long anotherId;

}

但是,由Hibernate生成并执行的sql会自动将所有驼峰大小写转换为蛇形大小写。因此,上述实体的输出sql是这样的:

create table my_record (
   my_id bigint not null,
    another_id bigint not null,
    primary key (my_id)
) engine=InnoDB

我不希望这种自动名称转换发生。我阅读的所有博客都提到在Hibernate 5中,默认物理名称映射与逻辑名称映射相同,默认情况下与字段名称相同。

那我为什么要为我的表和列使用蛇形转换名称?

我正在使用Java 8,Hibernate 5+和Mysql 5.7 +。

任何帮助都是绝对好的。

编辑:

我通过飞行路线创建了相同的表(带有骆驼箱),并将spring.jpa.hibernate.ddl-auto = validate设置为先前的update

但是,现在我得到Schema-validation: missing column [my_id] in table [my_record]

简而言之,为什么默认情况下Hibernate将驼峰大小写转换为蛇形大小写,而将命名策略的所有设置都设置为默认。

我还需要提到我正在使用Springboot 5 +。

0 个答案:

没有答案