我正在做一个 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”
我不知道在哪里可以更改命名策略。预先感谢!
您需要定义一个相应的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