J'ai ajouté une à plusieurs relations dans Room en utilisant Relation . J'ai fait référence à ce post pour écrire le code suivant pour la relation dans la salle.
Le message explique comment lire les valeurs de la base de données, mais le stockage des entités dans la base de données a abouti userId
à être vide, ce qui signifie qu'il n'y a pas de relation entre les 2 tables.
Je ne sais pas quelle est la manière idéale à insert
une User
et List of Pet
dans la base de données tout en ayant la userId
valeur.
1) Entité utilisateur:
@Entity
public class User {
@PrimaryKey
public int id; // User id
}
2) Entité pour animaux de compagnie:
@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;
}
Maintenant, pour récupérer les enregistrements de DB, nous utilisons ce qui suit DAO
:
@Dao
public interface UserDao {
@Insert
fun insertUser(user: User)
@Query("SELECT * FROM User")
public List<UserWithPets> loadUsersWithPets();
}
ÉDITER
J'ai créé ce problème https://issuetracker.google.com/issues/62848977 sur l'outil de suivi des problèmes. J'espère qu'ils feront quelque chose à ce sujet.