Ich versuche, eine Mehrschlüsseleinschränkung für eine JPA-zugeordnete Entität einzuführen:
public class InventoryItem {
@Id
private Long id;
@Version
private Long version;
@ManyToOne
@JoinColumn("productId")
private Product product;
@Column(nullable=false);
private long serial;
}
Grundsätzlich sollte (Produkt-, Serien-) Paar eindeutig sein, aber ich habe nur einen Weg gefunden zu sagen, dass Serien eindeutig sein sollten. Dies ist offensichtlich keine gute Idee, da verschiedene Produkte möglicherweise die gleichen Seriennummern haben.
Gibt es eine Möglichkeit, diese Einschränkung über JPA zu generieren, oder bin ich gezwungen, sie manuell in der Datenbank zu erstellen?
Wie bereits beantwortet, kann ein mehrspaltiger Index mithilfe von
@Table
Anmerkungen hinzugefügt werden . AllerdingscolumnNames
muss der Name der tatsächlichen DB Spalten sein, nicht das Klassenattribut. Wenn die Spalte also wie folgt aussieht:Dann sollte die
@Table
Anmerkung wie folgt aussehenquelle