ORMlite supporta l'ereditarietà ma non supporta le strativie di ereditarietà.
Di seguito è riportato un esempio di Ereditarietà con ORMLite.
creare un superclasse astratta non thats una tabella di database ORMLite ma ha alcuni campi del database utilizzati da tutte le sottoclassi
public abstract class Event {
@DatabaseField(columnName="id", generatedId = true)
protected int _id;
@DatabaseField(columnName="name")
protected String name;
@DatabaseField(columnName="date")
protected Date date;
@DatabaseField(columnName="type")
protected String type;
public abstract void setName(String name);
public abstract void setDate(Date date);
public abstract void setType(String type);
}
2) creare una classe che eredita e aggiungere alcuni campi (questo è una tabella database)
@DatabaseTable(tableName="atividade")
public class Atividade extends Event {
@DatabaseField(columnName="ala")
protected String ala;
public String getAla() {
return ala;
}
public void setAla(String ala) {
this.ala = ala;
}
public Atividade(String name, Date date, String type, String ala) {
this.setName(name);
this.setDate(date);
this.setTipo(type);
this.setAla(ala);
}
Atividade(){
}
@Override
public void setName(String name) {
this.name = name;
}
@Override
public void setDate(Date date) {
this.date = date;
}
@Override
public void setType(String type) {
this.type = type;
}
}
Spero che questo aiuti!
fonte
2013-05-19 06:39:43
Spiacente, forse non ero abbastanza chiaro sul collegamento. Ho pensato che forse il loro è ora una soluzione implementata per questo, perché il post è da gennaio 2011, ma grazie per la tua risposta – Flow
Np @Flow. Questo è un altro voto per quella funzione. Se vuoi contribuire ad aggiungerlo a ORMLite, invia un messaggio di posta elettronica nelle mailing list. – Gray
Siamo spiacenti di riportarlo indietro, ma questo significa che se la Classe B estende la Classe A, non puoi avere due tabelle diverse, dove la Classe B usa le proprietà di Classe A come colonne della tabella B? – Maxrunner