另一個關於JPA多對多關係的問題。我在我的數據庫中有以下結構:JPA多對多更新
______ ___________ _______
| user | | user2item | | item |
|------| |-----------| |-------|
| id | | user_id | | id |
| name | | item_id | | name |
------ ----------- | type |
-------
現在我想更新從一個用戶到給定類型的項目的assingment。所以很不幸,我不能簡單地這樣做:
user.setItems(newItemList);
因爲它會刪除其他類型的項目的分配。在普通的舊SQL我會這樣做:
DELETE FROM user2item WHERE user_id = ? AND item_id IN (SELECT id FROM item WHERE type=?);
INSERT INTO user2item (user_id, item_id) VALUES(?,?);
但是,因爲我使用JPA與QueryDSL普通SQL是沒有選擇。
感謝您的快速回答 - 這是我剛開始實施的臨時解決方法。但我認爲必須有一種更優雅的方式來使用花哨的JPA/QueryDSL功能。 – LordHelmchen