13

サンプル 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.idpet.userIdカテゴリー一覧

4

2 に答える 2