2013-05-17 42 views
0

Dao<T,ID>接口提供了許多DAO方法,如更新,創建,...等更新VS刷新在ORMLite

read該更新方法

不會保存到異物或國外所做的更改 集合。

刷新方法是否保存對外部對象或外部集合所做的更改?

通常,updaterefresh方法之間的主要區別是什麼?

+0

@Gray;對不起 –

回答

6

刷新方法是否保存對外部對象或外部集合所做的更改?

一般來說,有什麼更新和刷新方法之間的主要區別是?

嘆了口氣。 update(...)方法將您對內存中對象所做的更改寫入數據庫。我會引用來自ORMLite Javadocs。 update(...) is

將字段從對象存儲到數據庫。如果您對對象進行了更改,則這是如何將這些更改持久保存到數據庫的方式。您不能使用此方法更新id字段 - 請參閱updateId(T,ID)。

另一方面,refresh()方法,從數據庫更新內存中的對象。以下是refresh(...) javadocs

是否查詢對象的ID和每個來自數據庫的字段值中的副本以刷新數據參數。任何本地對象更改爲持久字段將被覆蓋。如果數據庫已更新,則會使本地對象保持最新狀態。

當文檔說update(...)方法不會保存對其他對象的更改時,這是因爲這些對象被保存在不同的表中。如果您有一個Account以及一系列訂單,則調用account上的更新只會更新這些字段。如果您更改了其中一個訂單,那麼您將不得不使用OrderDao來更新訂單表中的訂單。