サンプル POJOは次のとおりです。
@Entity
public class User {
@PrimaryKey
public String id;
}
@Entity
public class Pet {
@PrimaryKey
public String id;
public String userId;
public String petName;
}
@Entity
public class Category {
@PrimaryKey
public String id;
public String petId;
public String categoryName;
}
これは、すべてのユーザーとペットを取得するためのUsersWithPetsクラスです。
public class UserWithPets {
@Embedded
public User user;
@Relation(parentColumn = "id", entityColumn = "userId", entity = Pet.class)
public List<Pet> pets;
}
私のユーザー Dao
@Dao
public interface UserDao {
@Query("SELECT * FROM User")
List<UserWithPets> loadUsersWithPets();
}
およびユーザーデータベース
@Database(entities = {User.class, Pet.class, Category.class}, version = 1)
@TypeConverters(DateConverter.class)
public abstract class UsersDb extends RoomDatabase {
private static UsersDb INSTANCE;
public abstract UserDao userDao();
public static UsersDb getInstance(Context context) {
if (INSTANCE == null) {
synchronized (UsersDb.class) {
if (INSTANCE == null) {
INSTANCE = Room.databaseBuilder(context.getApplicationContext(), UsersDb.class,
"User.db")
.build();
}
}
}
return INSTANCE;
}
}
「UserWithPets 」はユーザー オブジェクトを埋め込み、関連する「 Pet 」のリストと関連付けますが、「 Pet」 POJO が「 Category 」と 1 対多の関係を持つことができる場合、 「 Category 」のリストを取得するにはどうすればよいですか。
また、ユーザー DAO は、との間で ID をマッピングすることにより、すべての「 User」とその「List< Pet >」のみを返します。私の「Pet」 POJO が多くの「Category」(カテゴリーのリスト) を持つことができる場合、どのように作成すればよいですか?特定の " User " ID を照会すると " User " オブジェクトとその " List of Pets " および "List of Category"を含む個々の " Pet "が返され、すべてを照会するとすべてが返されるような DAO および抽象データベース クラス各ユーザーが含まれる「ユーザーのリスト」ペットのリスト」、各ペットには「user.id
pet.userId
カテゴリー一覧」