1

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

了那个更新方法

不会保存对外部对象或外部集合所做的更改。

刷新方法是否保存了对外部对象或外部集合所做的更改?一般来说,和方法

之间的主要区别是什么?updaterefresh

4

1 回答 1

11

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

不。

一般来说,更新和刷新方法的主要区别是什么?

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

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

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

查询对象的 id 并从数据库中复制每个字段值以刷新数据参数。对持久字段的任何本地对象更改都将被覆盖。如果数据库已更新,这将使您的本地对象保持最新。

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

于 2013-05-17T12:41:56.777 回答