会议室:如何在DAO界面中使用@Transaction

时间:2018-07-21 12:39:08

标签: android android-room

关于此问题的答案:How to use setBalance method in my entity to set the actual balance value of a member?

答案建议使用@Transaction方法。我不知道如何使用此方法。另外,我的DAO是一个接口,答案的DAO是一个抽象。

如何将答案中建议的方法实现到我的界面DAO中,然后再实现到存储库中?

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:4)

房间中的交易方法是标有@Transaction注释的方法。

由于接口中不能包含非抽象方法,因此需要对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);
     }
}