在 且 与 或 优先级比较中 且 的优先级是大于 或 的。
addWhere("and o.age = ?", age);
addWhere("and o.name like ? ", "%" + str + "%");
addWhere("or o.stuNum like ?", "%" + str + "%");
addWhere("or o.calssName like ?", "%" + str + "%");
上面语句中会将age和name查完之后,才会查询or语句。所以要改成:
addWhere("and o.age = ?", age);
addWhere("and (o.name like ? ", "%" + str + "%");
addWhere("or o.stuNum like ?", "%" + str + "%");
addWhere("or o.calssName like ?)", "%" + str + "%");