我有两个实体类:
@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")