code: public static <T> String getKeysWhereSQL(T t, List<Object> keyValues) 
  	    throws NoKeyColumnAnnotationException, NullKeyValueException {
  		
  		List<Field> keyFields = DOInfoReader.getKeyColumns(t.getClass());
  		
  		List<Object> _keyValues = new ArrayList<Object>();
  		String where = joinWhereAndGetValue(keyFields, "AND", _keyValues, t);
  		
  		// 检查主键不允许为null
  		for(Object value : keyValues) {
  			if(value == null) {
  				throw new NullKeyValueException();
  			}
  		}
  		
  		if(keyValues != null) {
  			keyValues.addAll(_keyValues);
  		}
  		
  		return autoSetSoftDeleted("WHERE " + where, t.getClass());
  	}
docs: 获得主键where子句，包含where关键字。会自动处理软删除条件
  
  @param t
  @param keyValues 返回传入sql的参数，如果提供list则写入
  @return 返回值前面会带空格，以确保安全。
  @throws NoKeyColumnAnnotationException
  @throws NullKeyValueException