本次更新到 2015-10-9 V1.0.2版本
![spring-jdbc2][]
该版本增加了括号的支持,可以实现不同的属性在括号内or的情况,示例:
Criteria criteria = Criteria.create(User.class)
.where("userType", new Object[] { "1" }).beginBracket()
.and("loginName", new Object[] { "selfly" })
.or("email", new Object[] { "javaer@live.com" }).endBracket()
.and("password", new Object[] { "123456" });
User user = jdbcDao.querySingleResult(criteria);
以上代码将生成以下SQL语句:
SELECT LOGIN_NAME,... FROM USER WHERE USER_TYPE = ? and (LOGIN_NAME = ? or EMAIL = ?) and PASSWORD = ?
beginBracket()
默认括号前为and操作符,和 beginBracket("and")
等效,之后的第一个 and("loginName", new Object[] { "selfly" })
,这里的 and
将被忽略(本来想再提供一个方法,想不出什么好的方法名,再者方法太多了也不好所以直接忽略吧,使用者知道就行)。
如果使用 or
参数 beginBracket("or")
,如下:
Criteria criteria = Criteria.create(User.class)
.where("userType", new Object[] { "1" }).beginBracket("or")
.and("loginName", new Object[] { "selfly" })
.or("email", new Object[] { "javaer@live.com" }).endBracket()
.and("password", new Object[] { "123456" });
User user = jdbcDao.querySingleResult(criteria);
将生成SQL语句,注意括号前的操作符变成了 or
:
SELECT LOGIN_NAME,... FROM USER WHERE USER_TYPE = ? or (LOGIN_NAME = ? or EMAIL = ?) and PASSWORD = ?
[spring-jdbc2]: