我是Greendao的新手。我正在为greendao生成实体编写一个生成器。所以,我有两个实体医院和患者。他们之间有一对多的关系。因此,医院可以有很多患者,但一名患者只能有一家医院。现在Property hospitalId = patient.addLongProperty("hospitalId").getProperty();
这会在患者餐桌上添加一个hospitalid列。和
ToMany hospitalToPatients = hospital.addToMany(patient, hospitalId);
这一行创建了医院和患者之间的一对多关系。那么行patient.addToOne(hospital, hospitalId);
和hospitalToPatients.setName("patients");
的用途如何实现一对一,一对多,多对一和greendao中的多对多关系?
PS:我从http://www.vertabelo.com/blog/technical-articles/a-comparison-of-android-orms
public class ProjectGenerator {
public static void main(String[] args) throws Exception {
Schema schema = new Schema(1, "com.example.project");
// hospital table
Entity hospital = schema.addEntity("Hospital");
hospital.addIdProperty();
hospital.addStringProperty("name");
// patient table
Entity patient = schema.addEntity("Patient");
patient.addIdProperty();
patient.addStringProperty("name");
Property hospitalId = patient.addLongProperty("hospitalId").getProperty();
// patient has a one assigned hospital
patient.addToOne(hospital, hospitalId);
// hospital has many patients
ToMany hospitalToPatients = hospital.addToMany(patient, hospitalId);
hospitalToPatients.setName("patients");
// trigger generation with path to the Android project
new DaoGenerator().generateAll(schema, "../project/src/main/java");
}
}
答案 0 :(得分:-1)
那么行的用途是什么 patient.addToOne(hospital, hospitalId)
此行在oneToOne
和hospital
之间创建patient
关系。
hospitalToPatients.setName("patients")
这只是设置外键的名称。
如您所见,您已在示例中实现了实现one to one,one to many
关系。 patient.addToOne
是OneToOne
关系的一个示例。 hospital.addToMany
是OneToMany
关系的一个示例。并且greenDao不直接支持ManyToMany
关系,您可以阅读更多详细信息this。