@Column
JPA @Columnคำอธิบายประกอบสำหรับแอตทริบิวต์นิติบุคคลพื้นฐานเช่นString, ,IntegerDate
ดังนั้นหากชื่อแอตทริบิวต์ของเอนทิตีแตกต่างจากชื่อคอลัมน์ที่อยู่ข้างใต้คุณจะต้องใช้@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เป็นค่าเริ่มต้นที่ดีมากตรวจสอบบทความนี้