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年後出生或者1970年10月以後出生)』
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枚舉類型