Below is my Class Structure
@DatabaseTable(tableName = "Payment")
Class Payment{
@DatabaseField(generatedId = true)
public long id;
@DatabaseField
private long amount;
@DatabaseField
private String type;
@DatabaseField(foreign = true, foreignAutoRefresh = true, foreignAutoCreate = true)
private TenderDescriptor tender_descriptor;
}
below is BaseClass:-
public static abstract class TenderDescriptor implements Parcelable, Serializable {
@DatabaseField(generatedId=true, columnName = "_id")
private long id;
public TenderDescriptor() {
}
public abstract String getPaymentType();
}
below are two Derived Classes
@DatabaseTable(tableName = "CreditPaymentTenderDescriptor")
public static class CreditPaymentTenderDescriptor extends TenderDescriptor {
@DatabaseField
private boolean cardEncoded;
@DatabaseField
private String cardholder;
@DatabaseField
private String creditCardType;
@DatabaseField
private String creditCardLastFour;
@DatabaseField
private String cardNumber;
}
@DatabaseTable(tableName = "CashPaymentTenderDescriptor")
public static class CashPaymentTenderDescriptor extends TenderDescriptor {
@DatabaseField
private int no_coins ;
@DatabaseField
private int no_dollars;
}
When payment type is creditPayment, tender_descriptor references to CreditPaymentTenderDescriptor, when it tries to create entry into table it fails. Is Hierarchical Inheritance Support in ORMLite ? if yes how it is implemented ? In short i need tender_descriptor to point and store the appropriate descriptor.