Android Room: inserta entidades de relación usando Room
He agregado una a muchas relaciones en Room usandoRelación. Me referí aesta publicación para escribir el siguiente código para la relación en la habitación.
La publicación explica cómo leer los valores de la base de datos, pero el almacenamiento de las entidades en la base de datos resultó enuserId
estar vacío, lo que significa que no hay relación entre las 2 tablas.
No estoy seguro de cuál es la forma ideal deinsert
a User
yList of Pet
en la base de datos teniendouserId
valor.
1) Entidad de usuario:
@Entity
public class User {
@PrimaryKey
public int id; // User id
}
2) Entidad de mascota:
@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;
}
Ahora para buscar los registros de DB usamos lo siguienteDAO
:
@Dao
public interface UserDao {
@Insert
fun insertUser(user: User)
@Query("SELECT * FROM User")
public List<UserWithPets> loadUsersWithPets();
}
EDITAR
He creado este problemahttps://issuetracker.google.com/issues/62848977 en el rastreador de problemas. Esperemos que hagan algo al respecto.