code: private static String joinSetAndGetValue(List<Field> fields,
  			List<Object> values, Object obj, boolean withNull) {
  		StringBuilder sb = new StringBuilder();
  		int fieldSize = fields.size();
  		for(int i = 0; i < fieldSize; i++) {
  			Column column = fields.get(i).getAnnotation(Column.class);
  			Object value = DOInfoReader.getValue(fields.get(i), obj);
  			if(column.casVersion()) {
  				if(value == null) {
  					throw new CasVersionNotMatchException("casVersion column value is null");
  				}
  				Long _v = null;
  				if(value instanceof Long) {
  					_v = (Long) value;
  				} else if (value instanceof Integer) {
  					_v = ((Integer) value).longValue();
  				} else {
  					throw new CasVersionNotMatchException("casVersion column type must be Integer or Long");
  				}
  				sb.append(getColumnName(column)).append("=").append(_v + 1).append(",");
  			} else {
  				if(value != null && column.isJSON()) {
  					value = JSON.toJson(value);
  				}
  				if(withNull || value != null) {
  					sb.append(getColumnName(column)).append("=?,");
  					values.add(value);
  				}
  			}
  		}
  		return sb.length() == 0 ? "" : sb.substring(0, sb.length() - 1);
  	}
docs: 拼凑set子句，将会处理casVersion的字段自动+1
  @param fields
  @param values
  @param obj
  @param withNull 当为true时，如果field的值为null，也加入
  @return