与新版Raizlabs DBFlow一样,管理数据库的方式也发生了变化。
现在,在阅读/学习了几个小时之后,我被逼得束手无策。
public static void saveAll(Collection<? extends Model> models) {
TransactionManager.getInstance().addTransaction(new SaveModelTransaction<>(ProcessModelInfo.withModels(models)));
}
public static void deleteAll(Collection<? extends Model> models) {
TransactionManager.getInstance().addTransaction(new DeleteModelListTransaction<>(ProcessModelInfo.withModels(models)));
}我看过这篇文章:https://github.com/Raizlabs/DBFlow/blob/master/usage2/Migration3Guide.md#transactions-overhaul,但我还是不能这样做。这是我第一次接触ORM,我只是不太了解它
发布于 2017-04-19 18:37:33
正确答案是:
public static void saveAll(final Collection<? extends Model> models) {
FlowManager.getDatabase(NAME)
.beginTransactionAsync(new ProcessModelTransaction.Builder<>(
new ProcessModelTransaction.ProcessModel<Model>() {
@Override
public void processModel(Model model, DatabaseWrapper wrapper) {
model.save();
}
}).addAll(models).build())
.error(new Transaction.Error() {
@Override
public void onError(Transaction transaction, Throwable error) {
}
})
.success(new Transaction.Success() {
@Override
public void onSuccess(Transaction transaction) {
}
}).build().execute();
}和
public static void deleteAll(final Collection<? extends Model> models) {
FlowManager.getDatabase(NAME)
.beginTransactionAsync(new ProcessModelTransaction.Builder<>(
new ProcessModelTransaction.ProcessModel<Model>() {
@Override
public void processModel(Model model, DatabaseWrapper wrapper) {
model.delete();
}
}).addAll(models).build())
.error(new Transaction.Error() {
@Override
public void onError(Transaction transaction, Throwable error) {
}
})
.success(new Transaction.Success() {
@Override
public void onSuccess(Transaction transaction) {
}
}).build().execute();
}https://stackoverflow.com/questions/43468547
复制相似问题