Я додав одне до багатьох стосунків у Кімната, використовуючи Relation . Я звернувся до цього допису, щоб написати наступний код для відношення в кімнаті.
Пост розповідає, як читати значення з бази даних, але зберігання сутностей у базі даних призвело userId
до того, що вони були порожніми, що означає, що між двома таблицями немає зв'язку.
Я не впевнений , що це ідеальний спосіб і в базу даних, маючи значення.insert
User
List of Pet
userId
1) Юридична особа:
@Entity
public class User {
@PrimaryKey
public int id; // User id
}
2) Домашня тварина:
@Entity
public class Pet {
@PrimaryKey
public int id; // Pet id
public int userId; // User id
public String name;
}
3) UserWithPets POJO:
// Note: No annotation required at this class definition.
public class UserWithPets {
@Embedded
public User user;
@Relation(parentColumn = "id", entityColumn = "userId", entity = Pet.class)
public List<Pet> pets;
}
Тепер для отримання записів з БД ми використовуємо наступне DAO
:
@Dao
public interface UserDao {
@Insert
fun insertUser(user: User)
@Query("SELECT * FROM User")
public List<UserWithPets> loadUsersWithPets();
}
РЕДАГУВАТИ
Я створив цю проблему https://issuetracker.google.com/issues/62848977 у засобі відстеження проблем. Сподіваємось, вони щось з цим зроблять.