คุณสามารถสร้างEmbedded class
ซึ่งมีสองคีย์ของคุณจากนั้นมีการอ้างอิงถึงคลาสนั้นเช่นเดียวกับEmbeddedId
ในEntity
ไฟล์.
คุณจะต้องมีคำอธิบายประกอบ@EmbeddedId
และ@Embeddable
@Entity
public class YourEntity {
@EmbeddedId
private MyKey myKey;
@Column(name = "ColumnA")
private String columnA;
/** Your getters and setters **/
}
@Embeddable
public class MyKey implements Serializable {
@Column(name = "Id", nullable = false)
private int id;
@Column(name = "Version", nullable = false)
private int version;
/** getters and setters **/
}
วิธีการที่จะประสบความสำเร็จในงานนี้ก็คือการใช้@IdClass
คำอธิบายประกอบและสถานที่ของคุณทั้งสองในการที่id
IdClass
ตอนนี้คุณสามารถใช้@Id
คำอธิบายประกอบปกติกับทั้งสองแอตทริบิวต์
@Entity
@IdClass(MyKey.class)
public class YourEntity {
@Id
private int id;
@Id
private int version;
}
public class MyKey implements Serializable {
private int id;
private int version;
}
@IdClass
คำอธิบายประกอบคำแนะนำอีกประการหนึ่งที่ฉันพบคือ@Column
คำอธิบายประกอบควรเข้าไปในฟิลด์ของคลาสเอนทิตี (YourEntity
ในโค้ดตัวอย่างของ RohitJan)