首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DBFlow事务大修-需要重写代码

DBFlow事务大修-需要重写代码
EN

Stack Overflow用户
提问于 2017-04-18 17:34:53
回答 1查看 374关注 0票数 0

与新版Raizlabs DBFlow一样,管理数据库的方式也发生了变化。

现在,在阅读/学习了几个小时之后,我被逼得束手无策。

代码语言:javascript
运行
复制
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,我只是不太了解它

EN

回答 1

Stack Overflow用户

发布于 2017-04-19 18:37:33

正确答案是:

代码语言:javascript
运行
复制
    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();
}

代码语言:javascript
运行
复制
    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();

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43468547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档