我對會話中的hibernate bean setter的行爲感到困惑。我認爲,當你在一個會話中設置一個bean字段時,hibernate只知道這個bean是髒的,並且在session關閉時,這是一個掛起的更新,它將被刷新到數據庫。但是,我在一個hibernate會話中運行了一個測試,在這個會話中,我通過它的id獲取了一個bean,將一個字段從true更改爲false,然後對這個字段爲false的所有bean進行HQL查詢。在結果集中出現「髒」的bean,就好像hibernate在調用setter時已經創建了數據庫UPDATE一樣。然後,我在離開會話之前做了一個session.clear(),取消未決更新並驅逐所有bean。我認爲這會有效地擺脫二傳手電話的骯髒變化。然而我檢查了數據庫,記錄了從真到假的變化。注意:在此會話中從不調用session.flush()。hibernate:更改bean字段,然後發出查詢,查詢看到更改字段
看來,只要我調用bean setter,Hibernate就必須發出數據庫UPDATE調用。但是這看起來不正確?
Andy