【问题标题】:How can I update wth DBFlow in Android?如何在 Android 中更新 DBFlow?
【发布时间】:2015-07-19 21:05:59
【问题描述】:

我实现了上面的代码,是DBFlow教程中的代码

Update<Ant> update = new Update().table(Ant.class).set(Condition.column(Ant$Table.TYPE).eq("other"))
  .where(Condition.column(Ant$Table.TYPE).is("worker"))
  .and(Condition.column(Ant$Table.ISMALE).is(true));
update.queryClose();

Update()queryClose() 变成红色。

事实上,在 DBFlow 的 Update 类中甚至没有出现我刚刚粘贴的代码中显示的方法 table()。

有人知道如何实现更新语句吗?谢谢

【问题讨论】:

  • 嗨..我面临同样的问题..你找到解决方案了吗?
  • 似乎 .table() 方法在最近的 DBFlow 版本中已被删除,现在模型类在构造函数中传递。 @Kayvan 的解决方案应该有效。

标签: android orm sql-update flow update-statement


【解决方案1】:

Update()queryClose() 也有同样的问题,我通过使用这样的对象更新数据库解决了这个问题

mObject.setType("other");
mObject.update();

【讨论】:

    【解决方案2】:

    您的查询将返回一个Where 对象。那么你的Where 对象就会有.queryClose() 方法。

    Where update = new Update().table(Ant.class).set(Condition.column(Ant$Table.TYPE).eq("other"))
      .where(Condition.column(Ant$Table.TYPE).is("worker"))
      .and(Condition.column(Ant$Table.ISMALE).is(true));
    update.queryClose();
    

    【讨论】:

    • 很奇怪,我遇到了问题,这个版本的代码似乎可以工作
    【解决方案3】:

    你需要将 Java 版本从 1.6 升级到 1.7。

    如果 Android Studio -> 在应用程序文件夹中打开您的 gradle.build 并修复它们

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
    

    文档还是旧的,然后使用它:

    Where update = new Update<>(Ant.class).set(Condition.column(Ant$Table.TYPE).eq("other"))
      .where(Condition.column(Ant$Table.TYPE).is("worker"))
      .and(Condition.column(Ant$Table.ISMALE).is(true));
    update.queryClose();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-19
      相关资源
      最近更新 更多