Vous pouvez faire un Embedded class
qui contient vos deux clés, et ensuite avoir une référence à cette classe en tant que EmbeddedId
dans votre Entity
.
Vous auriez besoin du @EmbeddedId
y @Embeddable
annotations.
@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 **/
}
Une autre façon d'accomplir cette tâche est d'utiliser @IdClass
et placez vos deux id
en ce que IdClass
. Maintenant, vous pouvez utiliser @Id
sur les deux attributs
@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;
}