おそらくDagger2を使用して、Android Room Persistence Libraryを使用して他のDAOの依存関係としてDAOを追加する方法はありますか?トランザクションを使用して複数のテーブルで操作を行う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());
}
}
}
最終的に解決策を見つけました:
@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オブジェクトがデータベースをコンストラクターパラメーターとして受け取ることができるためです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加