Room:如何在DAO接口中使用@Transaction
Room: How to use @Transaction in DAO Interface
关于这个问题的答案:
答案建议使用@Transaction 方法。我不明白如何使用这种方法。还有,我的DAO是接口,答案的DAO是抽象的。
如何将答案中建议的方法实施到我的接口 DAO 中,然后再在存储库中实施?
room 中的交易方法是用 @Transaction
注释标记的方法。
由于接口中不能有非抽象方法,因此需要使用 抽象 class 而不是 interface 对于 DAO。
例如,
@android.arch.persistence.room.Dao
public abstract class AppDao {
@Transaction
public void insertAndDeleteInTransaction(Product newProduct, Product oldProduct) {
// Anything inside this method runs in a single transaction.
insert(newProduct);
delete(oldProduct);
}
}
关于这个问题的答案:
答案建议使用@Transaction 方法。我不明白如何使用这种方法。还有,我的DAO是接口,答案的DAO是抽象的。
如何将答案中建议的方法实施到我的接口 DAO 中,然后再在存储库中实施?
room 中的交易方法是用 @Transaction
注释标记的方法。
由于接口中不能有非抽象方法,因此需要使用 抽象 class 而不是 interface 对于 DAO。
例如,
@android.arch.persistence.room.Dao
public abstract class AppDao {
@Transaction
public void insertAndDeleteInTransaction(Product newProduct, Product oldProduct) {
// Anything inside this method runs in a single transaction.
insert(newProduct);
delete(oldProduct);
}
}