Answers:
使用@JoinColumn代替@Column:
@ManyToOne
@JoinColumn(name="LicenseeFK")
private Licensee licensee;@ManyToOne在此以及"mappedBy"另一侧(类)上使用,这意味着此列(名为"LicenseeFK")是外键,因此是联接列。因此,它是一个具有name的joinColumn "LicenseeFK"。我希望现在已经清楚了。
                    一起使用@JoinColumn和@Column将导致相同的错误。将其更改为仅用于:@JoinColumn进行修复。
@ColumnJPA的@Column注解是实体基本属性,如String,Integer,Date。
因此,如果实体属性名称与基础列名称不同,则需要使用@Column批注明确地指定列名称,如下所示:
@Column(name="created_on")
private LocalDate createdOn;@JoinColumn该@JoinColumn注释用于定制外键列名,并且它只能与实体结合使用。
因此,在您的情况下,因为您使用的是@ManyToOne关联,所以需要使用@JoinColumn:
@ManyToOne(fetch=FetchTYpe.LAZY)
@JoinColumn(name="LicenseeFK")
private Licensee licensee;请注意,我们将
fetch属性设置为,FetchType.LAZY因为默认情况下FetchType.EAGER使用该属性,这是一个糟糕的策略。有关为什么FetchType.LAZY默认更好的详细信息,请参阅本文。