Eliminare utilizzando ormlite su android?

Ho un fagiolo del cliente,

@DatabaseField(columnName = "client_id",generatedId = true,useGetSet = true) private Integer clientId; @DatabaseField(columnName = "client_nom",useGetSet = true) private String clientNom; @DatabaseField(columnName = "city_id",foreign = true,useGetSet = true) private City city; 

e un fagiolo della città,

  • Validazione del file AndroidManifest.xml
  • Creare un'applicazione SMS in Android?
  • OnTouchListener su Activity non chiama mai
  • La reinstallazione non è rioutput a causa delle diverse firme applicative
  • Distriggersre il button "Force Stop" in Android
  • Come modificare l'ordine z della window aggiunta tramite WindowManager?
  •  @DatabaseField(columnName = "city_id",generatedId = true,useGetSet = true) private Integer cityId; @DatabaseField(columnName = "city_name",useGetSet = true) private String cityName; @ForeignCollectionField private ForeignCollection<Client> clientList; 

    Questi fagioli sono solo un esempio, ma diciamo, voglio eliminare tutti i clienti che hanno come città straniera città quando cancellano una città.

    Come è ansible per favore?

  • Android ShoutCast Internet Radio FilenotFoundException
  • Come creare un utile tooltip in Android
  • Crash quando si fa clic sul button con il tema personalizzato
  • come creare listview android come tab android google chrome
  • Come mostrare l'anteprima della telecamera filtrata in tempo reale durante la logging di video?
  • Android: Come triggersre / disabilitare la connessione WiFi o la connessione a Internet in modo programmato
  • 2 Solutions collect form web for “Eliminare utilizzando ormlite su android?”

    ORMLite non support le eliminazioni in cascata @Majid. Questo è attualmente fuori di quello che considera "lite". Se si elimina la city è necessario eliminare manualmente i clients .

    Un modo per assicurare questo sarebbe avere una class CityDao che sovrascrive il metodo delete() e rilascia l'eliminazione tramite ClientDao contemporaneamente. Qualcosa di simile a:

     public class CityDao extends BaseDaoImpl<City, Integer> { private ClientDao clientDao; public CityDao(ConnectionSource cs, ClientDao clientDao) { super(cs, City.class); this.clientDao = clientDao; } ... @Override public int delete(City city) { // first delete the clients that match the city's id DeleteBuilder db = clientDao.deleteBuilder(); db.where().eq("city_id", city.getId()); clientDao.delete(db.prepare()); // then call the super to delete the city return super.delete(city); } ... } 

    Per implementare la cascata durante l'utilizzo di ORMLite su Android, è necessario abilitare le restrizioni di chiavi esterne come descritto qui:

    (Livello API> 16)

     @Override public void onOpen(SQLiteDatabase db){ super.onOpen(db); if (!db.isReadOnly()){ db.setForeignKeyConstraintsEnabled(true); } } 

    Per il livello API <16 leggi: Vincoli chiave esteri in Android utilizzando SQLite? su Elimina cascata

    Quindi utilizzare l'annotazione columnDefinition per definire le eliminazioni in cascata. Ex:

     @DatabaseField(foreign = true, columnDefinition = "integer references my_table(id) on delete cascade") private MyTable table; 

    Ciò suppone che il nome tabella / object sia "my_table", come descritto qui: Creazione di vincoli di chiave esterna in ORMLite in SQLite

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.