@Column
JPA @Columnchú thích là cho các thuộc tính thực thể cơ bản, như String, Integer, Date.
Vì vậy, nếu tên thuộc tính thực thể khác với tên cột bên dưới, thì bạn cần sử dụng @Columnchú thích để chỉ định rõ ràng tên cột, như sau:
@Column(name="created_on")
private LocalDate createdOn;
@JoinColumn
Các @JoinColumnchú thích được sử dụng để tùy chỉnh một tên cột Ngoại chính , và nó chỉ có thể được sử dụng với một hiệp hội thực thể.
Vì vậy, trong trường hợp của bạn, vì bạn đang sử dụng một @ManyToOnehiệp hội, bạn cần sử dụng @JoinColumn:
@ManyToOne(fetch=FetchTYpe.LAZY)
@JoinColumn(name="LicenseeFK")
private Licensee licensee;
Lưu ý rằng chúng tôi đặt fetchthuộc tính là FetchType.LAZYvì theo mặc định, FetchType.EAGERđược sử dụng và đó là một chiến lược khủng khiếp. Để biết thêm chi tiết về lý do tại sao FetchType.LAZYmột mặc định tốt hơn nhiều, hãy xem bài viết này .