Sto usando ormlite in Android e ho creato tabelle con successo ed eseguo le diverse operazioni usando DAO.Come eseguire la cancellazione a cascata su chiave esterna utilizzando ormlite in Android
Ma mi sono bloccato nell'eliminare la riga delle chiavi esterne se la chiave primaria è stata cancellata dalla tabella principale.
Ho due tabelle denominate padre e figlio. Un genitore ha più di un figlio quindi ho collegato il bambino con una chiave esterna.
Codice:
tabella principale:
@DatabaseField(id = true)
private Integer id;
@ForeignCollectionField(eager = false)
private ForeignCollection<Child> childCollection;
Tabella Bambini:
@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;
Ora, se io sto eliminando riga padre per un particolare id allora questo non è l'eliminazione i bambini dal tavolo del bambino.
public void deleteById(Integer parentId) {
try {
Dao<Parent, Integer> parentDao = databaseHelper.getParentDao();
parentDao .deleteById(parentId);
} catch (SQLException e) {
e.printStackTrace();
}
}
Per favore guidami, dove sto sbagliando. Ho provato e Google molte volte ma senza fortuna.
StackOverflow non è un forum, nuove risposte sono i benvenuti :) – m0skit0