如题,由于不熟悉这个框架的API,所以用的时候出错了,直接上代码
public List<Type> getAllBetweenDate(String start, String end) {
List<Type> types = null;
try {
// types = typeDaoOpe.queryBuilder().where().ge("startdate", start)
// .and().le("startdate", end).or().ge("enddate", start)
// .and().le("enddate", end).query(); Where<Type, Integer> where = typeDaoOpe.queryBuilder().where();
where.or(
where.and(where.ge("startdate", start),
where.le("startdate", end)),
where.and(where.ge("enddate", start),
where.le("enddate", end)));
types = where.query(); } catch (SQLException e) {
e.printStackTrace();
}
return types;
}
注释部分是原来错误的用法,对应的sql为“select * from tbl_type where (startdate>='2015-01-01' and startdate<='2015-01-31') or (enddate>='2015-01-01' and endate<='2015-01-31')”。
参考 http://*.com/questions/15375967/or-statement-ormlite
http://ormlite.com/javadoc/ormlite-core/doc-files/ormlite_3.html#Building-Queries