J'essaie d'introduire une contrainte multi-clé sur une entité mappée JPA:
public class InventoryItem {
@Id
private Long id;
@Version
private Long version;
@ManyToOne
@JoinColumn("productId")
private Product product;
@Column(nullable=false);
private long serial;
}
Fondamentalement, la paire (produit, série) doit être unique, mais j'ai seulement trouvé un moyen de dire que la série devrait être unique. Ce n'est évidemment pas une bonne idée car différents produits peuvent avoir les mêmes numéros de série.
Existe-t-il un moyen de générer cette contrainte via JPA ou suis-je obligé de la créer manuellement dans DB?
Comme déjà répondu, un index multi-colonnes peut être ajouté à l'aide d'une
@Table
annotation. Cependant,columnNames
doit être le nom des colonnes DB réelles, pas l'attribut de classe. Donc, si la colonne est comme la suivante:Ensuite, l'
@Table
annotation devrait ressembler à ce qui suitla source