Ich benutze Ormlite in Android und hat Tabellen erfolgreich erstellt und führen Sie die verschiedenen Operationen mit DAO.Wie kaskadierende Löschung auf Fremdschlüssel mit ormlite in Android
Aber ich habe beim Löschen der Fremdschlüssel Zeile stecken, wenn Primärschlüssel aus der Haupttabelle gelöscht wird.
Ich habe zwei Tabellen mit dem Namen Eltern und Kind. Ein Elternteil hat mehr als ein Kind, also habe ich das Kind mit Fremdschlüssel verbunden.
Code:
Geordnete Tabelle:
@DatabaseField(id = true)
private Integer id;
@ForeignCollectionField(eager = false)
private ForeignCollection<Child> childCollection;
Child Table:
@DatabaseField(id = true)
private Integer id;
@DatabaseField(foreign = true, foreignAutoRefresh = true, canBeNull = false,
index = true, columnDefinition = "INTEGER REFERENCES parent(id) ON DELETE CASCADE")
private Parent parent;
Wenn ich nun für eine bestimmte ID Eltemzeile am Löschen dann wird diese nicht zu löschen die Kinder vom Kindertisch.
public void deleteById(Integer parentId) {
try {
Dao<Parent, Integer> parentDao = databaseHelper.getParentDao();
parentDao .deleteById(parentId);
} catch (SQLException e) {
e.printStackTrace();
}
}
Bitte führen Sie mich, wo ich falsch mache. Ich habe es oft versucht und Google aber kein Glück.
StackOverflow ist kein Forum, neue Antworten sind willkommen :) – m0skit0