2012-12-17 40 views
2

问题是:GreenDao何时从会话缓存更新sql数据库?greendao何时greenDao从会话缓存更新数据库

假设我正在查询数据库中的现有实体,并且改变其中一个属性(字段)。无论如何,这些更改都是在不指挥sql数据库的情况下执行的。

所以 - 我应该更新实体吗? GreenDao什么时候将会话缓存刷新到数据库本身?

回答

3

你描述的声音听起来像JPA/Hibernate会话缓存。 greenDAO没有。它更简单。有些对象保存在内存中,你总是手动将它们更新到数据库。

一些更多的信息(远未完成): http://greendao-orm.com/documentation/sessions/

+0

你的意思与“更新”命令?把它变成每一次改变都不是一点点浪费? – Nativ

+1

是的,使用someDao.update(实体)。我不知道你的应用程序和它在做什么。也许有一个更有效的方法,也许你应该在列表中自己做一些更改跟踪,并在一个事务中更新列表。 –

+0

嗯,我想过,但问题是,用户可能会在每秒钟关闭应用程序,我想立即将他的更改保存在数据库中 – Nativ

0

当一个生成GreenDAO代码(实体,DAO的,DaoSession ....等),默认情况下的DAO延长AbstractDao类有多种用于在需要时更新数据库而不是在内存中保持更新一段时间的方法,例如(update(T entity),refresh(T entity),updateInTrx(java.lang.Iterable entities))。

欲了解更多信息,请检查AbstractDao javaDoc