【发布时间】:2018-06-18 05:47:03
【问题描述】:
官方文档指出:
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 合并为一个以支持交易,还是有更好的方法来做到这一点?
【问题讨论】:
标签: android sqlite persistence dao android-room