Comment introduire multi-contrainte de colonne avec des annotations JPA?
Je suis en train d'introduire un multi-contrainte de clé sur une JPA-mappé entité:
public class InventoryItem {
@Id
private Long id;
@Version
private Long version;
@ManyToOne
@JoinColumn("productId")
private Product product;
@Column(nullable=false);
private long serial;
}
Base (produit, numéro de série) la paire devrait être unique, mais j'ai seulement trouvé un moyen de dire que la série doit être unique. Ce n'est évidemment pas une bonne idée puisque les différents produits peuvent avoir les mêmes numéros de série.
Est-il un moyen pour générer cette contrainte via JPA ou suis-je obligé de créer manuellement de DB?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez déclarer les contraintes uniques à l'aide de la
@Table(uniqueConstraints = ...)
annotation dans votre classe d'entité, c'est à direNoter que ce n'est pas la baguette magique pour créer la contrainte unique dans la base de données, vous avez encore besoin d'un DDL pour qu'il soit créé. Mais il semble que vous soyez à l'aide d'outil automatique pour la création de la base de données fondées sur les définitions d'entités JPA.
Comme déjà répondu, multi-index de colonne peuvent être ajoutés à l'aide de
@Table
annotation. Cependant,columnNames
doit être le nom de réels DB colonnes, pas l'attribut de classe. Donc, si la colonne est comme suit:Puis le
@Table
annotation devrait être comme suit