【发布时间】:2018-05-25 00:05:27
【问题描述】:
我正在使用 Android 的房间数据库,但在理解如何:
- 当我将
Person添加到数据库时,它会添加其所有变量,例如List<Shoe>,List<Pet>等也到数据库中。 创建关系,以便当我检索
Person时,检索其所有字段,例如Pet, Shoe, Shirt等(不确定是什么类型的查询)执行简单查询,例如
Retrieve Person whereshoe.name= "boot";
我知道您必须对对象列表使用外键关系,否则对于单个对象可以使用 @Embed 或 @TypeConverter
示例代码如下所示;
@Entity(tableName = "person")
public class Person {
@PrimaryKey
@NonNull
private String personId;
private List<Pet> pets;
private List<Shoe> shoes;
private List<Shirt> shirts;
}
@Entity(foreignKeys = {
@ForeignKey(
entity = Person.class,
parentColumns = "personId",
childColumns = "personIdFk"
)
})
public class Pet {
String petId;
String name;
String personIdFk; //Foreign key to person
}
@Entity(foreignKeys = {
@ForeignKey(
entity = Person.class,
parentColumns = "personId",
childColumns = "personIdFk"
)
})
public class Shoe {
String shoeId;
String name;
String personIdFk; //Foreign key to person
}
@Entity(foreignKeys = {
@ForeignKey(
entity = Person.class,
parentColumns = "personId",
childColumns = "personIdFk"
)
})
public class Shirt {
String shirtId;
String name;
String personIdFk; //Foreign key to person
}
【问题讨论】:
标签: java android mysql android-room