0

Android 用の ORMLite フレームワークの使い方を学んでいます。

しかし、解決するために多くの方法を試しましたが失敗したという問題に直面しました。

例えば。私は2つのデータベースクラスを持っています:

@DatabaseTable(tableName = "Subject")
public class Subject {
        @DatabaseField(columnName = "id", id = true)
        protected String id;

        @DatabaseField(columnName = "deleteFlag", canBeNull = false, defaultValue = "0")
        protected boolean deleteFlag = false;

        @DatabaseField(columnName = "name", canBeNull = false)
        private String name;

        @ForeignCollectionField(eager = true, maxEagerLevel = 3)
        private Collection<Student> students;
        ...
}

@DatabaseTable(tableName = "Student")
public class Student {
        @DatabaseField(columnName = "id", id = true)
        protected String id;

        @DatabaseField(columnName = "deleteFlag", canBeNull = false, defaultValue = "0")
        protected boolean deleteFlag = false;

        @DatabaseField(columnName = "firstName", canBeNull = false)
        private String firstName;

        @DatabaseField(columnName = "lastName", canBeNull = true)
        private String lastName;

        @DatabaseField(columnName = "subjectId", canBeNull = false, foreign = true, foreignColumnName = "id")
        private Subject subject;

        ...
}

レコードがデータベースで削除されていないことが必要です。単に deleteFlag 列でマークされているだけです。

ここで、「deleteFlag = false」を持つすべてのサブジェクトを照会しようとします。各科目には、「deleteFlag = false」を持つ学生のリストもあります。

SubjectDao を使用してクエリを実行する方法はありますか???

または、次の 2 つの手順を実行する必要があります。

  1. SubjectDao を使用して、「deleteFlag = false」を持つすべてのサブジェクトをクエリします。

  2. 科目のリストをループし、StudentDao を使用して、「deleteFlag = false」を持つその科目のすべての学生をクエリします。次に、生徒のリストをサブジェクト オブジェクトに設定します。

御時間ありがとうございます。

4

1 に答える 1