我有一個ManyToMany關係從名爲Card的類到名爲Color的類。我正在使用JPA和Hibernate。JPA ManyToMany與唯一屬性的關係
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;
}
但如果我堅持一個卡java的拋出一個異常,因爲黑色已經包含在顏色。
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'Black' for key 'UK_sd7tby3rtx8snv2vlbmlmy69o'
但我想Colors.name是唯一的,JPA要尋找的顏色,如果顏色已經持續並使用持久的顏色。
JPA不會「搜索的顏色,如果顏色已經持續」,這是你的工作。 JPA在那裏堅持你給的東西 –
噢好的。不知道這個事實:/ – Implex1v