为什么spring.jpa.hibernate.naming.implicit-strategy和physical-st



我有两个实体类:

@Entity
@Data
public class Holiday {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private LocalDate date;

@ManyToOne
private Calendar calendar;

}
@Entity
@Data
public class Calendar {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;

}

当我运行集成测试时,我得到以下错误:

org.springframework.dao。InvalidDataAccessResourceUsageException:不提取ResultSet;SQL (n/a);嵌套异常是org.hibernate.exception. sqlgrammareexception:无法提取结果集在

…78个以上原因:sqlserverexception:无效的列名"calendar_id"。在

数据库将calendarId作为FK。我知道下划线是默认值,但我的应用。Yml文件有:

spring:
jpa:
hibernate:
naming:
implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

这应该改变hibernate将列指定为calendarId。为什么这不起作用?我使用的是Spring Boot 2.7.5.

您可以显式地命名该列:

@Column(name = "Calendarid")

相关内容

最新更新