Bir yapabilir Embedded class
senin iki anahtar içeren, ve sonra olarak bu sınıfın bir başvuru olması EmbeddedId
Gözlerinde farklı Entity
.
@EmbeddedId
Ve @Embeddable
ek açıklamalarına ihtiyacınız olacak .
@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 **/
}
Bu görevi başarmak için başka bir yol kullanmaktır @IdClass
sizin hem ek açıklama ve yer id
ki IdClass
. Artık @Id
her iki öznitelik için de normal açıklama kullanabilirsiniz
@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
Ek açıklamayı kullanırken, bulduğum başka bir ipucu,@Column
ek açıklamanın Varlık sınıfının alanlarına (YourEntity
RohitJan'ın örnek kodunda) gitmesi gerektiğidir.