private List<Field> fieldSOfType() {
		Field[] fields = type.getDeclaredFields();
		List<Field> fieldList = new ArrayList<Field>();
		Field idField = null;
    	for(Field field : fields){
    		if(field.getModifiers() != Modifier.PRIVATE){
 				continue;
 			}
    		// 主键
    		Id id = field.getAnnotation(Id.class);
    		// 如果使用'id'作为主键名称，则不需要在属性上添加@Id注解
 			if (id != null || field.getName().equals(BatchSaveIgnore.defaultIdName)) {
 				idField = field;
 				fieldList.add(idField);
 				continue;
 			}
 			// 除了跳过字段，其他私有属性拼接sql
 			BatchSaveIgnore ignoreField = field.getAnnotation(BatchSaveIgnore.class);
 			if (ignoreField == null || ignoreField.ingoreLevel() != BatchSaveIgnore.all) {
 				field.setAccessible(true);
    			fieldList.add(field);
 			}
    	}
    	// 现有@Id注解都在方法上
//    	if(idField == null){
//          Method[] mothods = type.getDeclaredMethods();
//			for (Method method : mothods) {
//				Id id = method.getAnnotation(Id.class);
//				if (id != null) {
//					String idString = method.getName().replace("get", "");
//					idString = idString.substring(0,1).toLowerCase() + idString.substring(1);
//					try {
//						Field temp = type.getDeclaredField(idString);
//						idField = temp;
//					} catch (Exception e) {
//						e.printStackTrace();
//					}
//					break;
//				}
//			}
//    	}
    	if(idField == null){
    		throw new IllegalStateException(type.getAnnotation(Table.class).name()+" table has not a primary key");
    	}
    	return fieldList;
	}