我有两个实体类:
@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;
}
运行集成测试时,出现以下错误:
数据访问资源使用异常:无法提取结果集; SQL [N/A];嵌套异常错误为org. hib.异常错误。SQLGrammarException:无法在处提取结果集
... 78更起因:com.microsoft.sqlserver.jdbc.SQLServerException:列名'calendar_id'无效。at
数据库将calendarId作为FK。我知道下划线是默认值,但我的应用程序.yml文件具有:
spring:
jpa:
hibernate:
naming:
implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
这应该会让hib将该列显示为calendarId。为什么这不起作用?我使用的是Sping Boot 2.7.5。
1条答案
按热度按时间qv7cva1a1#
您可以明确命名数据行: