Ho aggiunto una relazione a molte in Room utilizzando Relation . Ho fatto riferimento a questo post per scrivere il seguente codice per la relazione in Room.
Il post spiega come leggere i valori dal database, ma la memorizzazione delle entità nel database è risultata userId
vuota, il che significa che non esiste alcuna relazione tra le 2 tabelle.
Non sono sicuro di quello che è il modo ideale per insert
un User
e List of Pet
nella banca dati, pur avendo userId
valore.
1) Entità utente:
@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;
}
Ora per recuperare i record dal DB usiamo quanto segue DAO
:
@Dao
public interface UserDao {
@Insert
fun insertUser(user: User)
@Query("SELECT * FROM User")
public List<UserWithPets> loadUsersWithPets();
}
MODIFICARE
Ho creato questo problema https://issuetracker.google.com/issues/62848977 nel tracker dei problemi. Si spera che faranno qualcosa al riguardo.