Ormlite or()的使用

如题,由于不熟悉这个框架的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://stackoverflow.com/questions/15375967/or-statement-ormlite

http://ormlite.com/javadoc/ormlite-core/doc-files/ormlite_3.html#Building-Queries

原文地址:https://www.cnblogs.com/yahb/p/4226155.html