@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
เป็นค่าเริ่มต้นที่ดีมากตรวจสอบบทความนี้