2010-05-05 154 views
1

我有幾個實體。其中兩人獲得了多對多的關係。當我對這些實體進行更大的操作時,它會失敗併產生以下異常:休眠插入連接表

org.hibernate.exception.ConstraintViolationException: could not insert collection rows: 

我在@Transactional上下文中執行操作。我不做任何明確的沖洗我的道。刷新由查詢觸發。隊列中有15個元素(全部是相同的結構)。其中一個總是失敗(但它總是一個不同的(我檢查),並始終在不同的位置)。

有沒有人對我可能會做錯的提示?

我的映射:

@ManyToMany(targetEntity = CategoryImpl.class) 
protected Set<Category> categories = new HashSet<Category>(); 

回答

1

很難用具體的電流電平說。協會是雙向的嗎?你有一個擁有方(在另一方有mappedBy)定義?您可以啓用日誌記錄來查看執行的查詢並確定導致問題的一個。

+0

該協會是單向的。插入到連接表中時發生該問題。 – Karl 2010-05-06 07:45:49

+0

@Karl Ok。您是否成功識別失敗的SQL語句? – 2010-05-06 08:45:01

+0

查詢是這樣的: 休眠:插入PictureImpl_CategoryImpl(PictureImpl_id,categories_id)值 異常以下: WARN JDBCExceptionReporter:100 - SQL錯誤:(?,?)1062,SQLSTATE:23000 ERROR JDBCExceptionReporter:101 - 重複條目'2-18'鍵'PRIMARY' 我使用MySQL(5.1.46)innodb與mysql5innodbdialect – Karl 2010-05-06 10:53:07