Bạn có thể tạo một Embedded class, chứa hai khóa của bạn và sau đó có một tham chiếu đến lớp đó như EmbeddedIdtrong của bạn Entity.
Bạn sẽ cần @EmbeddedIdvà @Embeddablechú thích.
@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 **/
}
Một cách khác để đạt được nhiệm vụ này là sử dụng @IdClasschú thích và đặt cả chú thích của bạn idvào đó IdClass. Bây giờ bạn có thể sử dụng @Idchú thích bình thường trên cả hai thuộc tính
@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;
}
@IdClasschú thích, một mẹo khác mà tôi tìm thấy là@Columnchú thích nên đi vào các trường của lớp Thực thể (YourEntitytrong mã mẫu của RohitJan).