String keyArray[] = keywords.trim().split(",|,");
for (int i = 0; i < keyArray.length; i++) {
Criteria criteria = condition.or();
criteria
.andEqualTo("deleted", 0)
.andEqualTo("state", InformationState.STATE_PUBLHISHED)
.andLike("keywords", "%"+keyArray[i]+"%");
Criteria criteria2 = condition.or();
criteria2.andEqualTo("deleted", 0)
.andEqualTo("state", InformationState.STATE_PUBLHISHED)
.andLike("title", "%"+keyArray[i]+"%");
}
得到类似:
WHERE
DELETED = ?
AND STATE = ?
AND ( KEYWORDS LIKE '%aaa%' or TITLE '%aaa%' ) OR ( KEYWORDS LIKE '%bbb%' or TITLE '%bbb%' );
真实日志打印:
WHERE
( DELETED = ? and STATE = ? and KEYWORDS like ? )
or ( DELETED = ? and STATE = ? and TITLE like ? )
or ( DELETED = ? and STATE = ? and KEYWORDS like ? )
or ( DELETED = ? and STATE = ? and TITLE like ? )