gpt4 book ai didi

跨 DAO 的 Android Room 交易

转载 作者:IT王子 更新时间:2023-10-29 06:18:27 27 4
gpt4 key购买 nike

官方文档指出:

It is recommended to have multiple Dao classes in your codebase depending on the tables they touch.

并且可以用这样的 Transaction 注解来标记一个方法:

 @Dao
public abstract class ProductDao {
@Insert
public abstract void insert(Product product);
@Delete
public abstract void delete(Product product);
@Transaction
public void insertAndDeleteInTransaction(Product newProduct, Product oldProduct) {
// Anything inside this method runs in a single transaction.
insert(newProduct);
delete(oldProduct);
}
}

但是如果一个事务跨越多个 DAO 怎么办?我应该将所有 DAO 合并为一个以支持交易,还是有更好的方法来做到这一点?

最佳答案

您可以使用 RoomDatabase.runInTransaction(...)

类似于:

database.runInTransaction(new Runnable(){
@Override
public void run(){
Access all your daos here
}
});

关于跨 DAO 的 Android Room 交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48164003/

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