绿色道和引发奇怪的行为

  • 本文关键字: android greendao
  • 更新时间 :
  • 英文 :


我在我的安卓应用程序中使用绿道,我需要使用触发器。触发器在插入后更新字段,其中包含一些信息。

DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(context, toString(), null) {
        @Override
        public void onCreate(SQLiteDatabase db) {
            super.onCreate(db);
            db.execSQL("CREATE TRIGGER tg1 AFTER INSERT ON table1 " +
                    "BEGIN " +
                    " update tabl1 set info='" + someInfo + "'" +
                    " where _id=New._id; " +
                    " END;");
            db.execSQL("CREATE TRIGGER tg2 AFTER UPDATE ON table1 " +
                    "BEGIN " +
                    " update table1 set info='" + someInfo+ "'" +
                    " where _id=New._id; " +
                    " END;");

        }
    };
    daoSession = new DaoMaster(helper.getWritableDatabase()).newSession();

触发器运行良好,当我直接查看表中包含的数据时,该字段包含更新的信息。我遇到的问题是,如果我从表中加载实体,有时我在字段中接收数据,有时我收到 null。

我想这个问题与会话有关,也许 greendao 并不总是从表中加载数据,而是使用已经在内存中的对象。我已经测试过,如果我使用 myDao.refresh(entity) 强制刷新实体,则存在正确的值。

但是当我使用列表(原始查询或 loadAll 方法)时,我无法强制刷新实体。

有没有办法强制绿道从数据库中加载始终新鲜的信息?

提前谢谢。

尝试对会话进行切割。

daoSession.clear();

相关内容

  • 没有找到相关文章

最新更新