Ich habe eine ManyToMany-Beziehung von einer Klasse namens Card zu einer Klasse namens Color. Ich verwende JPA und Hibernate.JPA ManyToMany-Beziehung mit eindeutigem Attribut
Card.java
@Entity(name = "Cards")
public class Card
{
@Id
@Column(name = "card_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long cardId;
@ManyToMany(cascade = CascadeType.ALL)
private List<Color> colors;
}
Color.java
@Entity(name = "Colors")
public class Color
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long colorId;
@Column(unique = true)
private String name;
}
Aber wenn ich eine Karte java bin persistierenden löst eine Ausnahme, weil Schwarz bereits in Farben enthalten ist.
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'Black' for key 'UK_sd7tby3rtx8snv2vlbmlmy69o'
Aber ich will Colors.name einzigartig sein und JPA sollten Farben suchen, wenn die Farbe bereits beibehalten wird und die beibehaltenen Farbe.
JPA nicht „Farben suchen, wenn Farbe ist bereits bestanden“, das ist Ihre Aufgabe. JPA ist da um zu bestehen, was du gibst –
Oh ok. Wusste diese Tatsache nicht:/ – Implex1v