GreenDao何时从会话缓存更新数据库?

3
问题是:GreenDao何时从会话缓存更新SQL数据库?
假设我正在查询现有实体并更改其中一个属性(字段)。更改将在不影响SQL数据库的情况下执行。
那么,我是否应该对实体进行更新? GreenDao什么时候将其会话缓存刷新到数据库中?
2个回答

3
您所描述的听起来像是JPA/Hibernate会话缓存。greenDAO并没有这个功能。它更简单。对象保存在内存中,您需要手动将它们更新到数据库中。
以下是一些相关信息(远非完整): http://greendao-orm.com/documentation/sessions/

你是说用“update”命令吗?每次更改都调用它有点浪费,不是吗? - Nativ
2
是的,使用 someDao.update(entity)。我不知道你的应用程序在做什么。也许有一种更有效的方式,也许你应该自己在列表中进行一些变更追踪,并在一个事务中更新列表。 - Markus Junginger
我考虑过这个问题,但是用户可能在任何时候关闭应用程序,我希望立即将他的更改保存到数据库中。 - Nativ
这就是使greenDao更加强大的原因!如果用户进行了大量更改,然后决定不保存呢?所有更改都在内存中(即对象),而不是数据库本身! - Leeeeeeelo

0
当一个人生成GreenDAO代码(实体,DAO,DaoSession等)时,默认情况下,DAO会扩展AbstractDao类,该类具有各种方法来在需要时更新数据库,而不是将更新保留在内存中一段时间,例如(update(T entity),refresh(T entity),updateInTrx(java.lang.Iterable entities))。
要获取更多信息,请查看AbstractDao javaDoc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接