public static <T> Map<String, Object> createInsertProps(T t) throws BasException {
		if (t == null) {
			throw new BasException(BasErrCode.E10017);
		}

		if (!t.getClass().isAnnotationPresent(Table.class)) {
			throw new BasException(BasErrCode.E10018, t.getClass().getSimpleName());
		}

		Field[] fields = t.getClass().getDeclaredFields();
		Map<String, Object> fieldMap = new HashMap<String, Object>();
		for (Field f : fields) {
			if (!f.isAnnotationPresent(Column.class) || f.getAnnotation(Column.class).key()) {
				continue;
			}
			try {
				fieldMap.put(f.getName(), t.getClass().getMethod(getGetterMethodName(f.getName())).invoke(t));
			} catch (Exception e) {
				log.error(e.getMessage(), e);
				throw new BasException(BasErrCode.E10030, t.getClass().getSimpleName());
			}
		}
		return fieldMap;
	}