greenDao orm 進階

greenDao 支持 枚舉類型

Note.class

    @Entity(indexes = {
        @Index(value = "text, date DESC", unique = true)
    })
    public class Note {

        @Id(autoincrement = true)
        private Long id;

        @NotNull
        private String text;
        private String comment;
        private java.util.Date date;

        @Convert(converter = NoteTypeConverter.class, columnType = String.class)
        private NoteType type;
    }

NoteType.class

public enum NoteType {
    TEXT, LIST, PICTURE
}

NoteTypeConverter.class

public class NoteTypeConverter implements PropertyConverter<NoteType, String> {
    @Override
    public NoteType convertToEntityProperty(String databaseValue) {
        return NoteType.valueOf(databaseValue);
    }

    @Override
    public String convertToDatabaseValue(NoteType entityProperty) {
        return entityProperty.name();
    }
}

查詢

高級查詢

    查詢條件:
    First name is "Joe" 
    AND(
        year of birth is greater than 1970 
        OR(
        year of birth is 1970 AND month of birth is equal to or greater than 10)
    )
『firstname 等於Joe,而且(此人1970年後出生或者197010月以後出生)』
QueryBuilder<User> qb = userDao.queryBuilder();
qb.where(Properties.FirstName.eq("Joe"),
qb.or(Properties.YearOfBirth.gt(1970),
qb.and(Properties.YearOfBirth.eq(1970), Properties.MonthOfBirth.ge(10))));
List<User> youngJoes = qb.list();

自定義類型查詢

**greenDao 支持的默認類型**

    boolean, Boolean
    int, Integer
    short, Short
    long, Long
    float, Float
    double, Double
    byte, Byte
    byte[]
    String
    Date

其他類型參考枚舉類型 greenDao枚舉類型

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章