android – 如何在GreenDAO中對映Enum

我剛開始使用greenDAO.

如何新增列舉屬性?

我的想法:使用實體的addIndex屬性.

private static void main() {

    // TODO Auto-generated method stub
    static Schema blah;
    Entity unicorn = blah.addEntity("Weather");
    unicorn.addIdProperty();
    unicorn.addIntProperty("currentAirTemp");
    unicorn.addIndex("shirtSize");
}

這是正確的方法嗎?

目的:我希望引用來自套裝的shirtSize:{XS,S,M,L,XL,XXL}

據我所知,由於其不穩定的性質,enums不受greenDAO的支援.

此外,它們是一個容易出錯的元件,可以新增到資料庫邏輯中,因為列舉元素的值可以更改.

解決這個問題的一個選擇是將Int屬性新增到資料庫,然後將Enum序數值對映到該欄位,如下所示:

// add the int property to the entity
unicorn.addIntProperty("shirtSize");

// create the enum with static values
public enum ShirtSize {
    XS(1), S(2), M(3), L(4), XL(5), XXL(6);

    private final int value;

    private ShirtSize(int value) {
        this.value = value;
    }

    public int value() {
        return value;
    }
}

// set the ordinal value of the enum
weather.setShirtSize(ShirtSize.XL.value());

翻譯自:https://stackoverflow.com/questions/17961576/how-to-map-enum-in-greendao