/** 添加表达式,匹配操作符 "propertyName is not null". */
 public Condition addNotNull(final ColumnField<?> columnField) {
   return add(Restrict.isNotNull(columnField.getFieldName()));
 }
 /** 添加表达式,匹配操作符 "not in". */
 public Condition addNotin(final ColumnField<?> columnField, Object[] value) {
   return add(Restrict.notIn(columnField.getFieldName(), value));
 }
 /** 添加表达式,匹配操作符 "propertyName is not null". */
 public Condition addNotNull(final String propertyName) {
   return add(Restrict.isNotNull(propertyName));
 }
 /** 添加表达式,匹配操作符 "in". */
 public Condition addin(final ColumnField<?> columnField, Collection<String> values) {
   return add(Restrict.in(columnField.getFieldName(), values));
 }
 /** 添加表达式,匹配操作符 "not in". */
 public Condition addNotin(final String propertyName, Object[] value) {
   return add(Restrict.notIn(propertyName, value));
 }
 /** 添加表达式,匹配操作符 "like "'%"+value+"%'". */
 public Condition addContainsLike(final ColumnField<?> columnField, String value) {
   return add(Restrict.containsLike(columnField.getFieldName(), value));
 }
 /** 如果属性值不为空(空格作空处理).则添加表达式,匹配操作符 "=". */
 public Condition addEq(String fieldName, Boolean value) {
   return add(Restrict.eq(fieldName, value));
 }
 /** 添加表达式,匹配操作符 "<>". */
 public Condition addne(final ColumnField<?> columnField, long value) {
   return add(Restrict.ne(columnField.getFieldName(), value, ParamValuedType.LONG));
 }
 /** 添加表达式,匹配操作符 "betweeen". */
 public Condition addBetweeen(final String propertyName, Object value1, Object value2) {
   return add(Restrict.between(propertyName, value1, value2));
 }
 /** 添加表达式,匹配操作符 "<=". */
 public Condition addLe(final ColumnField<?> columnField, String value) {
   return add(Restrict.le(columnField.getFieldName(), value, ParamValuedType.STRING));
 }
 /** 添加表达式,匹配操作符 "<>". */
 public Condition addne(final String propertyName, String value) {
   return add(Restrict.ne(propertyName, value, ParamValuedType.STRING));
 }
 /** 添加表达式,匹配操作符 "<=". */
 public Condition addLe(final String propertyName, Date value) {
   return add(Restrict.le(propertyName, value));
 }
 /** 添加表达式,匹配操作符 "<=". */
 public Condition addLe(final String propertyName, long value) {
   return add(Restrict.le(propertyName, value, ParamValuedType.LONG));
 }
 /** 添加表达式,匹配操作符 ">=". */
 public Condition addGeIfNotBlank(final ColumnField<?> columnField, Date value) {
   return add(Restrict.ge(columnField.getFieldName(), value));
 }
 /** 添加表达式,匹配操作符 "like '"+value+"%'". */
 public Condition addStartsLike(final String propertyName, String value) {
   return add(Restrict.startsLike(propertyName, value));
 }
 /** 添加表达式,匹配操作符 "betweeen". */
 public Condition addBetweeen(final ColumnField<?> columnField, Object value1, Object value2) {
   return add(Restrict.between(columnField.getFieldName(), value1, value2));
 }
 /** 添加表达式,匹配操作符 "like "'%"+value+"%'". */
 public Condition addContainsLike(final String propertyName, String value) {
   return add(Restrict.containsLike(propertyName, value));
 }
 /** 添加表达式,匹配操作符 "in". */
 public Condition addin(final String propertyName, Collection<String> values) {
   return add(Restrict.in(propertyName, values));
 }
 /**
  * 添加查询表达式.表达式之间使用OR连接,
  *
  * @param expressions
  */
 public Condition or(
     Expression expression1, Expression expression2, Expression... moreExpressions) {
   compositeExpression.add(Restrict.or(expression1, expression2, moreExpressions));
   isContruct = false;
   return this;
 }
 /** 如果属性值不为空(空格作空处理).则添加表达式,匹配操作符 "=". */
 public Condition addEqIfNotBlank(final String propertyName, String value) {
   if (!StringUtils.isBlank(value))
     return add(Restrict.eq(propertyName, value, ParamValuedType.STRING));
   return this;
 }