Eu adicionei um relacionamento de muitos na Room usando Relation . Eu me referi a esta postagem para escrever o seguinte código para relacionamento na Room.
A postagem informa como ler os valores do banco de dados, mas armazenar as entidades no banco de dados resultou em userId
um vazio, o que significa que não há relação entre as 2 tabelas.
Eu não tenho certeza qual é o caminho ideal para insert
um User
e List of Pet
para o banco de dados, enquanto o userId
valor.
1) Entidade do usuário:
@Entity
public class User {
@PrimaryKey
public int id; // User id
}
2) Entidade Pet:
@Entity
public class Pet {
@PrimaryKey
public int id; // Pet id
public int userId; // User id
public String name;
}
3) POJO UserWithPets:
// 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;
}
Agora, para buscar os registros do banco de dados, usamos o seguinte DAO
:
@Dao
public interface UserDao {
@Insert
fun insertUser(user: User)
@Query("SELECT * FROM User")
public List<UserWithPets> loadUsersWithPets();
}
EDITAR
Eu criei esse problema https://issuetracker.google.com/issues/62848977 no rastreador de problemas. Esperançosamente, eles farão algo a respeito.