1
當我在開放的hibernate會話中調用Session.flush()時會發生什麼?我更改了所有實體(保留,刪除,更新),並將保存/更新/刪除寫入數據庫,或者會話中的所有實體都寫入數據庫,並且如果我沒有對它們調用更新等?什麼是由Hibernate的Session.flush刷新()
我發現很多關於這方面的Hibernate資源,但沒有給出我準確的答案,我正在尋找。
一個簡單的例子:
class A {
@OneToOne
public B b;
public int x;
}
class B {
@OneToOne(mappedBy="b")
public B b;
public int y;
}
// Example
A a = aDao.load(...);
a.x = 20;
b.y = 15;
aDao.update(a);
// Question: Will this update b's value to 15 in the database?
session.flush();
若B將在上面的例子中被更新,我怎樣才能防止它?
感謝您的幫助!
他們不會。通過persister的類型檢查對象是否相等(可能是字符串類型的名稱) – bestsss 2011-06-16 13:55:10
另外,第一級高速緩存刷新也很重要,因爲它在長時間繪製的事務中變得很大。 – bestsss 2011-06-16 13:58:40