我正在使用hibernate來運行命名的JPA查詢。爲什麼hibernate會從同一個會話的同一個查詢中返回不同的對象?
該查詢從同一會話執行兩次,查詢應返回相同的行,因爲數據庫在此期間不會更改。
令我驚訝的是,查詢返回的對象與這兩個查詢結果列表(數據相同但對象不同)不同。啓用第一級緩存(默認情況下)後,我認爲第二個查詢應該返回與第一個查詢相同的對象?
查詢是一個簡單的命名查詢:
SELECT e from TABLE e where e.name=?1
是緩存隨查詢莫名其妙地繞過?或者我對第一級緩存的理解是錯誤的?
您可以添加您用於查詢的代碼嗎?你的對象是否有實體鍵? – 2013-04-07 23:35:06