[英]What's flushed by Hibernate's 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將在上面的示例中更新,我該如何防止它?
謝謝你的幫助!
所有更改都將寫入數據庫。 未保存未創建/修改/刪除的對象。
我不確定obj.setName(obj.getName())
類的東西會發生什么(即當你觸摸屬性但不改變它時)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.