Ich habe eine zu vielen Beziehungen in Room mithilfe von Relation hinzugefügt . Ich habe auf diesen Beitrag verwiesen, um den folgenden Code für die Beziehung in Raum zu schreiben.
Der Beitrag erklärt, wie die Werte aus der Datenbank gelesen werden, aber das Speichern der Entitäten in der Datenbank führte userIddazu, dass sie leer waren, was bedeutet, dass zwischen den beiden Tabellen keine Beziehung besteht.
Ich bin mir nicht sicher, was der ideale Weg zu inserteiner Userund List of Petin die Datenbank ist, während ich userIdWert habe.
1) Benutzerentität:
@Entity
public class User {
@PrimaryKey
public int id; // User id
}
2) Haustierentität:
@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;
}
Um die Datensätze aus der Datenbank abzurufen, verwenden wir Folgendes DAO:
@Dao
public interface UserDao {
@Insert
fun insertUser(user: User)
@Query("SELECT * FROM User")
public List<UserWithPets> loadUsersWithPets();
}
BEARBEITEN
Ich habe dieses Problem https://issuetracker.google.com/issues/62848977 im Issue-Tracker erstellt. Hoffentlich werden sie etwas dagegen unternehmen.