ORMLite中的更新与刷新

Abd*_*UMI 0 dao crud updates ormlite

Dao<T,ID> Interface提供了许多DAO方法,例如update,create,...等

了Update方法

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

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

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

Gra*_*ray 7

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

没有.

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

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

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

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

是否从数据库中查询对象的id和副本中的每个字段值以刷新数据参数.任何本地对象更改为持久字段都将被覆盖.如果数据库已更新,则会使本地对象保持最新状态.

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