gpt4 book ai didi

android - 如何将多个 greenDAO Tx 操作合并为一个事务?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:44:19 27 4
gpt4 key购买 nike

我的应用程序使用远程 REST API 并使用 greenDao 填充本地数据库。我有一个 AsyncTask 类的服务:

@Override
protected Void doInBackground(Void... params) {
insert100RowsIntheFirstTable();
insert100RowsIntheSecondTable();
}

在每个插入方法中,我都有 insertOrReplaceInTx,我主要使用它来提高性能。

我需要的是在任何方法无法检索数据时放弃结果。它应该通过同一笔交易完成。

我想知道在方法中使用 insertOrReplaceInTx 时,用 mDaoSession.callInTx(callable) 包围我的插入方法调用是否正确。我说得对吗?

此外,如果出现异常,我该如何放弃交易 - 它是通过 greenDao 自动完成的吗?

最佳答案

是的,如果您的代码可以抛出异常,请使用 callInTx(如果不能,您也可以考虑使用 runInTx。Android 的 SQLite API 会处理这些“嵌套”事务。

毕竟,如果您查看源代码,callInTx 只是一些方便的行:

public <V> V callInTx(Callable<V> callable) throws Exception {
db.beginTransaction();
try {
V result = callable.call();
db.setTransactionSuccessful();
return result;
} finally {
db.endTransaction();
}
}

关于android - 如何将多个 greenDAO Tx 操作合并为一个事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14342972/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com