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ư EmbeddedId
trong của bạn Entity
.
Bạn sẽ cần @EmbeddedId
và @Embeddable
chú 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 @IdClass
chú thích và đặt cả chú thích của bạn id
vào đó IdClass
. Bây giờ bạn có thể sử dụng @Id
chú 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;
}
@IdClass
chú thích, một mẹo khác mà tôi tìm thấy là@Column
chú thích nên đi vào các trường của lớp Thực thể (YourEntity
trong mã mẫu của RohitJan).