是否有一种方法可以在其他DAO中使用Android持久性库将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());
}
}
}
发布于 2018-04-17 02:23:35
最后找到了解决方案:
@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对象可以将数据库作为构造函数参数。。
https://stackoverflow.com/questions/46767224
复制