ORMLite中的更新与刷新

时间:2013-05-17 06:39:43

标签: dao crud updates ormlite

Dao<T,ID>接口提供了许多DAO方法,例如update,create,... etc

read更新方法

  

不会保存对外来对象或外来对象的更改   集合。

刷新方法是否保存对外来对象或外国集合的更改?

一般来说,updaterefresh方法之间的主要区别是什么?

1 个答案:

答案 0 :(得分:7)

  

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

没有

  

通常,更新和刷新方法之间的主要区别是什么?

叹息。 update(...)方法将您对内存中对象所做的更改写入数据库。我将引用ORMLite Javadocs。 update(...) is

  

将对象中的字段存储到数据库中。如果您对对象进行了更改,则可以将这些更改保留到数据库中。您不能使用此方法更新id字段 - 请参阅updateId(T,ID)。

另一方面,refresh()方法从数据库更新内存中的对象。以下是refresh(...) javadocs

  

查询对象的id和来自数据库的每个字段值中的副本以刷新数据参数。任何本地对象更改为持久字段都将被覆盖。如果数据库已更新,则会使您的本地对象更新。

当文档说update(...)方法不会保存对其他对象的更改时,因为这些对象是在不同的表中维护的。如果您的Account包含订单集合,则account上的更新仅会更新这些字段。如果您对其中一个订单进行了更改,那么您将不得不使用OrderDao来更新订单表中的订单。