@Column
JPA @Column
chú 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 @Column
chú thích để chỉ định rõ ràng tên cột, như sau:
@Column(name="created_on")
private LocalDate createdOn;
@JoinColumn
Các @JoinColumn
chú 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 @ManyToOne
hiệ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 fetch
thuộc tính là FetchType.LAZY
vì 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.LAZY
một mặc định tốt hơn nhiều, hãy xem bài viết này .