2010-11-27 57 views
2

給定一個不變的實體,是否Hibernatesession.update(entity)發送SQLUPDATE語句到數據庫服務器?Hibernate是否更新一個沒有改變的實體?

例如,在下面的代碼中,Hibernate是否將SQL UPDATE發送到數據庫服務器?

Session session = factory.openSession(); 
Person me = new Person(null, "Derek Mahar"); 
session.save(me); 
Person me2 = new Person(me.getId(), "Derek Mahar"); 
session.update(me2); 
session.flush(); 
+0

這是一個測驗嗎? – cherouvim 2010-11-27 20:42:03

+0

如果對象仍然連接到會話,是否更新甚至可以工作? `update()`的API告訴它用給定的分離實例更新持久化實例。 – kraftan 2010-11-27 20:45:04

回答

6

不,嚴格來說,Hibernate不會在update上發送SQL更新。 update只是更新當前會話中的對象。當會話刷新時,Hibernate執行查詢。

相關問題