【问题标题】:Android Room: DAOs with nested DAOsAndroid Room:带有嵌套 DAO 的 DAO
【发布时间】:2021-10-07 02:17:19
【问题描述】:

有没有办法使用 Android Room Persistence Library 将 DAO 作为依赖项添加到其他 DAO 中,也许是使用 Dagger2?我试图避免使用事务对多个表进行操作的 DAO 类中的方法爆炸。

这就是我想要完成的。

示例:FooBarRepository.class

@Dao
public abstract class FooBarRepository {
    // THESE ARE DAOs ADDED AS DEPENDENCIES
    FooRepository fooRepository;
    BarRepository barRepository;

    ...

    @Transaction
    public void insertOrUpdateInTransaction(FooBar... foobars) {
        for (FooBar item : foobars) {
            fooRepository.insertOrUpdateInTransaction(item.getFoo());
            barRepository.insertOrUpdateInTransaction(item.getBar());
        }
    }
}

【问题讨论】:

    标签: android android-room


    【解决方案1】:

    终于找到解决办法了:

    @Dao
    public abstract class Repository {
    
        private final TaskRepository taskRepository;
        private final ResourceRepository resourceRepository;
    
        public Repository(AppDatabase database) {
            this.taskRepository = database.getTaskRepository();
            this.resourceRepository = database.getResourceRepository();
        }
    ...
    

    这是允许的,因为一个 dao-object can take the database as a constructor parameter

    【讨论】:

      猜你喜欢
      • 2018-08-25
      • 2018-06-18
      • 2019-03-11
      • 2018-04-19
      • 2018-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多