簡體   English   中英

Hibernate單向@ManyToMany:刪除沒有約束沖突嗎?

[英]Hibernate unidirectional @ManyToMany : delete without constraint violations?

我有A班:

@Entity
public class A {
  ...
  @ManyToMany
  private Set<Ref> refs = new HashSet<Ref>();
  ...
}

和類Ref:

@Entity
public class Ref {
 // no link to A
}

我想刪除A和A_Ref但不刪除Ref,但是我得到了org.hibernate.exception.ConstraintViolationException

有沒有簡單的方法可以做到這一點,還是我應該明確創建A_Ref類?

謝謝

編輯:我試圖直接在hql中刪除我的A列表。 我這樣做的目的(打破關系),它的工作(級聯+孤兒刪除)。

我不確定,如果我做對了,但是據我了解,我的第一個猜測是,您沒有使用所有必要的注釋來確保休眠狀態將自動自動刪除Ref中的必要引用。

在manyToMany關系中,可以使用joinTables和cascadetypes來確保休眠知道自己在哪里刪除所有必要的關系,而無需為其創建自己的domainObject。

有很多不錯的指南來介紹如何進行管理。 乍看之下mkyong的指南看起來不錯。 注意:他注釋了getter而不是變量聲明! (這只是口味問題)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM