Ich habe eine Beziehung in Raum mit Relation hinzugefügt. Ich bezog mich auf this post, um den folgenden Code für die Beziehung in Raum zu schreiben.Android Room: Einfügen von Relationsentitäten mit dem Raum
Der Post sagt, wie man die Werte aus der Datenbank liest, aber die Entitäten in der Datenbank gespeichert userId
leer zu sein bedeutet, dass es keine Beziehung zwischen den 2 Tabellen gibt.
Ich bin mir nicht sicher, was der ideale Weg ist, ein User
und List of Pet
in die Datenbank insert
während userId
Wert.
1) User-Entity:
@Entity
public class User {
@PrimaryKey
public int id; // User id
}
2) Pet Entity:
@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;
}
nun die Datensätze aus DB wir die Verwendung holen folgende DAO
:
@Dao
public interface UserDao {
@Insert
fun insertUser(user: User)
@Query("SELECT * FROM User")
public List<UserWithPets> loadUsersWithPets();
}
EDIT
ich dieses Problem geschaffen haben https://issuetracker.google.com/issues/62848977 auf der issue tracker. Hoffentlich werden sie etwas dagegen tun.
Ich versuchte das gleiche mit 'Stream'. Ich hoffe nur, dass es einen besseren Weg gibt, es zu tun. –
Ich glaube nicht, dass es einen besseren Weg gibt, da die Dokumentation besagt, dass sie absichtlich Referenzen aus der Bibliothek entfernt haben: https://developer.android.com/topic/libraries/architecture/room.html#no-object- Referenzen – tknell
Ich habe dieses Problem https://issuetracker.google.com/issues/62848977 auf dem Issue Tracker erstellt. Hoffentlich werden sie etwas dagegen tun. –