2010-11-10 20 views
1
@Entity public class Organization { 

@OneToMany 
List<A> Aobjects; 


@OneToMany 
List<B> Bobjects; 


@OneToMany 
List<C> Cobjects; 

} 

刪除爲了我對所有的@OneToMany成員@OnDelete註解。當父對象被刪除時刪除這些對象的順序是什麼。假設它是聲明對象的順序是否安全?所含@OneToMany成員

+0

當你嘗試時發生了什麼? – 2010-11-10 10:59:58

+0

當您執行級聯刪除時,我看不到SQL日誌。但是我遇到了一些問題,如果B inturn有一個外鍵引用A導致A刪除失敗。因此,這個問題 – Sam 2010-11-10 12:02:40

回答

1

我對所有@OneToMany成員都有@OnDelete註解。當父對象被刪除時刪除這些對象的順序是什麼。假設它是聲明對象的順序是否安全?

因此,您正在使用SQL級聯刪除刪除而不是常規的Hibernate機制。由於您使用的是數據庫機制,我很想說聲明對象的順序並不重要(數據庫根本不知道這個順序),我只希望數據庫能夠適當地處理事情。

如果你是雖然生成從批註的模型,但它可能會影響列的順序:

  • 我會非常驚訝,如果這有任何影響,這將使一切都非常脆弱,無法使用。
  • Hibernate/JPA沒有說任何有關列的順序(因爲這應該不重要,見上文)。

但我遇到了一些問題,當B inturn有一個外鍵參照這會導致失敗的缺失

您應該提到的是,在問題,這是非常相關 IMO。就我的回答而言,正如我所說的,我希望數據庫引擎能夠適當地處理事情,數據庫引擎具有完成所需的所有元數據。但我不是數據庫專家,我不確定這個理論是怎麼說的。

也許看看這樣的問題:

或詢問有關理論對於給定的問題(與實踐發動機)。