0

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.

Sameer Khader
  • 157
  • 1
  • 5
  • 1
    Check out this post http://stackoverflow.com/questions/10188414/does-ormlite-support-inheritance – Orest Feb 22 '16 at 07:54
  • Yeah this is a duplicate. See the other answer. abstract class support is not handled currently. – Gray Feb 22 '16 at 17:17

0 Answers0