簡體   English   中英

Hibernate的Session.flush()刷新了什么

[英]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.

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