@Column
JPA @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
значно краще за замовчуванням, ознайомтеся з цією статтею .