我使用Hibernate來選擇從View數據(定義如下):是什麼導致hibernate生成更新子句?
from test where trim(id)='1111'
但休眠會生成以下UPDATE子句:
update test set id=?, dd=? where id='1111'
任何人有什麼建議嗎?它似乎是Hibernate的一個bug?
我使用Hibernate來選擇從View數據(定義如下):是什麼導致hibernate生成更新子句?
from test where trim(id)='1111'
但休眠會生成以下UPDATE子句:
update test set id=?, dd=? where id='1111'
任何人有什麼建議嗎?它似乎是Hibernate的一個bug?
Hibernate有時可以爲您產生更新!
例如,如果某個對象的狀態與數據庫不同步,就會發生這種情況。您可以根據需要重寫此行爲(請參閱下面的第二個項目符號)......但通常它會影響應用程序邏輯中的一些錯誤。
你的情況:有2個原因,這可發生:
1)休眠內省的公共方法(即getter和setter)來設置你的映射文件中的字段的基礎上,HQL你發送它作爲輸入。那麼......這是如何影響你的問題的?那麼...... 如果你的獲取者中有一些複雜的邏輯用於你的java bean,那麼當你最終執行這個調用時,這個邏輯可能會導致hibernate產生一些更新,因爲這些方法正在被調用。
2)在調用select語句(即髒事務)時,Hibernate會進行更新。這些有時可以通過設置固定在你的.hbm.xml文件「更新=假」,在適當的地方...
參見:Using Enum in Hibernate causes select followed by an update statement
能否請你添加一些代碼來顯示你在做什麼? – Manish 2011-12-15 04:06:41