【问题标题】:greendao when does greenDao updates the database from session cachegreendao greenDao 何时从会话缓存中更新数据库
【发布时间】:2015-01-21 16:31:42
【问题描述】:

问题是:GreenDao什么时候从会话缓存中更新sql数据库?

假设我正在从数据库中查询现有实体,然后更改其中一个属性(字段)。无论如何,更改都是在不直接指向 sql 数据库的情况下执行的。

那么 - 我应该更新实体吗? GreenDao 何时将其会话缓存刷新到数据库本身?

【问题讨论】:

    标签: android greendao


    【解决方案1】:

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

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

    【讨论】:

    • 你的意思是“更新”命令吗?每次改动都叫它是不是有点浪费?
    • 是的,使用 someDao.update(entity)。我不知道您的应用程序以及它在做什么。也许有更有效的方法,也许你应该自己在列表中做一些更改跟踪,并在一次事务中更新列表。
    • 好吧,我考虑过,但问题是用户可能每秒都会关闭应用程序,我想立即将他的更改保存在数据库中
    • 这就是 greenDao 更加强大的原因!如果用户做了很多更改然后决定不保存怎么办?所有更改都在内存(对象)中,而不是数据库本身!
    【解决方案2】:

    当生成 GreenDAO 代码(实体、DAO、DaoSession....等)时,DAO 默认扩展 AbstractDao 类,该类具有多种在需要时更新数据库的方法,而不是将更新保存在记忆一段时间如(update(T entity),refresh(T entity),updateInTrx(java.lang.Iterable entities))。

    更多信息请查看AbstractDao javaDoc

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-10
      • 1970-01-01
      • 1970-01-01
      • 2012-03-26
      • 1970-01-01
      相关资源
      最近更新 更多