讓我們先忘掉Hibernate。假設我有兩個表A & B.兩個事務正在更新這兩個表中的相同記錄,但是txn 1更新B然後A,而txn 2更新A然後B.這是一個典型的死鎖示例。避免這種情況的最常見方法是預先定義獲取資源的順序。例如,我們應該更新表A然後B.Hibernate如何決定更新/插入/刪除的順序
回到Hibernate。當我們在一個會話中更新大量實體時,一旦我正在刷新會話,不同實體的更改將爲DB生成相應的插入/更新/刪除語句。 Hibernate是否有一些算法來決定實體之間的更新順序?如果不是,Hibernate用來防止第一段中描述的死鎖情況的方式是什麼?
如果Hibernate維護訂單,我如何知道或控制訂單?我不希望我的顯式更新與Hibernate的數據庫衝突,並導致死鎖。
請接受我的道歉,因爲不明原因,我錯過了這個答案:)我相信你在Hibernate代碼中的考試結果實際上給出了迄今爲止最可信的答案。特別是針對第1點和第2點的好建議 –