我想在Android项目中使用@Relation
批注。 Here我找到了关于该主题的描述:
@Entity
public class User {
@PrimaryKey
public int id; // User id
}
@Entity
public class Pet {
@PrimaryKey
public int id; // Pet id
public int userId; // User id
public String name;
}
public class UserWithPets {
@Embedded
public User user;
@Relation(parentColumn = "id", entityColumn = "userId", entity = Pet.class)
public List<Pet> pets;
}
我的问题是:
parentColumn
参数是id
。但是,这是哪个id
?是id
的{{1}}还是User
的{{1}}?在文档中说id
是父POJO中的参考列。但是父POJO是哪一个?
答案 0 :(得分:1)
在这种情况下,将在后台创建一个关系表,其中“用户”列是父级,而“宠物”列是子级。它们之间的链接由User的ID完成,该ID在Pet中也以userId的形式出现。
Room的意思是:“给我所有userID与User实体的当前ID匹配的宠物”,然后对User实体的所有ID重复该宠物。
我将引导您访问此链接https://medium.com/androiddevelopers/database-relations-with-room-544ab95e4542,以更好地了解更新后的概念。