ORMlite unterstützt die Vererbung, aber es unterstützt keine Vererbungsstrategien.
Im Folgenden finden Sie ein Beispiel für die Vererbung mit ORMLite.
erstellen eine abstrakte Superklasse das ist nicht eine ORMLite Datenbanktabelle hat aber einige Datenbankfelder von allen Unterklassen verwendet
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) Erstellen Sie eine Klasse, die es erbt und fügen Sie einige Felder (das ist eine Datenbanktabelle)
@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;
}
}
Hoffe, dass hilft!
Sorry, vielleicht war ich nicht klar genug über den Link. Ich dachte, vielleicht ist das jetzt eine implementierte Lösung dafür, denn die Post ist ab Januar 2011, aber danke für deine Antwort – Flow
Np @Flow. Das ist eine andere Wahl für dieses Feature. Wenn Sie helfen möchten, ORMLite hinzuzufügen, senden Sie einige E-Mails in den Mailinglisten. – Gray
Es tut uns leid, dies zurück zu bringen, aber bedeutet das, dass, wenn Klasse B die Klasse A erweitert, Sie nicht zwei verschiedene Tabellen haben können, wobei Klasse B Klasse A Eigenschaften als Tabelle B Spalten verwendet? – Maxrunner