Как реализовать отношения в Greendao?

Я новичок в Greendao. Я пишу генератор для создания сущностей в greendao. Итак, у меня есть две сущности Больница и пациент. Между ними есть отношения один ко многим. Таким образом, в больнице может быть много пациентов, но у одного пациента может быть только одна больница. Сейчас Property hospitalId = patient.addLongProperty("hospitalId").getProperty(); это добавляет столбец госпитализации в таблицу пациентов. а также

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");
        }
    }

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 отношения непосредственно для более подробной информации вы можете прочитать это.

Другие вопросы по тегам