我們有一個多對多的關係,比如Entity1和Entity2。JPA ManyToMany過濾器鏈接表
現在,當我們刪除一個Entity2的元素時,我們實際上並沒有將它從數據庫中刪除,而只是將一個字段「isActive」設置爲false。
當發生這種情況時,我們希望刪除Entity1的任何元素與被刪除的Entity2的元素之間的所有關係。
在SQL中,這會轉換爲entity1表,entity2表和entity1TOentity2表。在SQL我們可以簡單地做一個更新,
delete from entity1TOentity2 where entity2ID = :entity2Id
在JPA中,我們可以加載的對象ENTITY1的所有元素,與連接抓取的關係,然後通過一個Java中的連接刪除一個,但它是非常浪費......
有沒有什麼辦法用JPAQL來制定SQL查詢?
我知道這是可能的explicitly define a link entity, and make JPA use it,那麼我想我可以運行一個基本上與該鏈接實體上的SQL相同的查詢,但它似乎有點矯枉過正。
我缺少一個像原始SQL一樣好的解決方案,但使用JPA API/JPAQL?
你叫什麼多到許多實體的擁有者?在這裏我有Entity1和Entity2。如果這就是你的意思,我沒有明確地定義一個實體Entity1toEntity2? –
關係的所有者是具有'@ ManyToMany'註釋的實體,沒有'mappedBy'元素。是的,這就是我的意思(即你不需要Entity1toEntity2實體)。 –
我有Entity1。 DB中有很多元素,很多記錄。我提到了將它們全部取出並逐個刪除連接的可能性。但是你說這不是你的建議。有實體,但我需要在記錄上處理元素。所以我不遵循。 –