Boh*_*sen 9 android android-room
有没有办法使用 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());
}
}
}
Run Code Online (Sandbox Code Playgroud)
Boh*_*sen 12
终于找到了解决办法:
@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();
}
...
Run Code Online (Sandbox Code Playgroud)
这是允许的,因为 dao 对象可以将数据库作为构造函数参数。
| 归档时间: |
|
| 查看次数: |
962 次 |
| 最近记录: |