Hibernate 隐式命名策略

问题描述 投票:0回答:1

我正在做一个 Spring Boot 项目,我对 Hibernate 使用的命名策略有疑问。 正如我们在以下链接中看到的:命名策略。我不知道为什么我的程序配置了物理命名策略,而我想设置隐式命名策略。我对实体、表、id、列使用相应的注释(@...)...但程序仍会解释物理命名策略。 有人可以解释一下我该如何改变它吗?

@Entity
@Table(name = "contacts")
@Getter
@Setter
public class Contact {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "idContact")
    private Integer id;
    
    @Column(name = "nameContact")
    private String name;

错误:“字段列表”中存在未知列“c1_0.id_contact”

我不知道在哪里可以更改命名策略。预先感谢!

java spring hibernate jpa
1个回答
0
投票

您需要定义一个相应的bean,例如:

@Bean
public PhysicalNamingStrategy physicalNamingStrategy() {
  return org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl#INSTANCE; 
}

或将

spring
配置属性
spring.jpa.properties.hibernate.physical_naming_strategy
的值设置为
org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

© www.soinside.com 2019 - 2024. All rights reserved.