2015-05-08 54 views
1

我實現TE上面的代碼,這是從DBFlow教程如何在Android中更新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()。

有誰知道如何實現Update語句嗎?謝謝

+0

嗨..我對着同樣的問題..你找到解決方案嗎? – iMDroid

+0

好像.table()方法在最新版本的DBFlow中已被刪除,現在模型類在構造函數中傳遞。 Kayvan的解決方案應該可以工作。 – voghDev

回答

1

我有同樣的問題與Update()queryClose(),我解決它通過使用對象這樣

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

0

,你必須將返回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(); 
+0

奇怪,我遇到了問題,這個版本的代碼似乎工作 – voghDev

0

需要將Java版本從1.6升級到1.7。

的情況下,Android的工作室 - >應用程序文件夾中打開你的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();