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

转载注明原文:android – 如何在GreenDAO中映射Enum