在运行Android的ORM精简版UpdateBuilder.update()后,无法从数据库中检索

2019-10-29 21:12发布

我有麻烦通过使用ORM精简版,因为我更新的数据是不是在数据库中直接受影响android系统中更新数据时。 更新过程后,我从数据库中查询数据,但我得到的旧数据,这是和以前一样我更新。

所以,我通过使用刷新(对象)更新过程后,这个问题是OK(我可以从数据访问下一个查询最新更新的数据)刷新每个更新的对象解决了这个问题。

但我不知道是不是最好的办法还是没有? 如果有其他办法来解决这个问题,请你告诉我? 谢谢。

运行使用UpdateBuilder批量更新。

try {
    Set<String> ids = accountIdSet;
    UpdateBuilder<Account, Long> updateBuilder = account.updateBuilder();
    updateBuilder.where().in(Account.ID,ids);
    updateBuilder.updateColumnValue(Account.REGISTERED, true);
    return updateBuilder.update();
} catch (SQLException e) { }
return 0;

更新过程后,我通过以下线路做从数据库中查询数据。

try {
    Set<String> ids = accountIdSet;
    List<Account> result =  Account.queryBuilder().where().in(Account.ID, ids).query();
    if (result!=null) {
        for (Account acc : result) {
            Log.i(acc.getId() + ", registered = " + acc.getRegistered());
        }
        return result;
    }
} catch (SQLException e) { }
return null;

当时我得到了数据的旧值。 例如 -

1, registered = false
2, registered = false
3, registered = false

结果应该是

1, registered = true
2, registered = true
3, registered = true
文章来源: Cannot retrieve the latest update value from database after running the ORM Lite UpdateBuilder.update() in android