Saya telah menambahkan satu ke banyak hubungan di Room menggunakan Relation . Saya mengacu posting ini untuk menulis kode berikut untuk relasi di Room.
Postingan tersebut memberi tahu cara membaca nilai dari database tetapi menyimpan entitas ke dalam database yang dihasilkan userId
kosong yang berarti tidak ada hubungan antara 2 tabel tersebut.
Saya tidak yakin apa yang adalah cara yang ideal untuk insert
sebuah User
danList of Pet
ke dalam database sementara memiliki userId
nilai.
1) Entitas Pengguna:
@Entity
public class User {
@PrimaryKey
public int id; // User id
}
2) Entitas Hewan Peliharaan:
@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;
}
Sekarang untuk mengambil record dari DB kita menggunakan yang berikut ini DAO
:
@Dao
public interface UserDao {
@Insert
fun insertUser(user: User)
@Query("SELECT * FROM User")
public List<UserWithPets> loadUsersWithPets();
}
EDIT
Saya telah membuat masalah ini https://issuetracker.google.com/issues/62848977 di pelacak masalah. Mudah-mudahan mereka akan melakukan sesuatu tentang itu.