有没有办法在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());
}
}
}
答案 0 :(得分:2)
终于找到了解决方案:
@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。