Search in sources :

Example 1 with Param

use of org.springframework.data.repository.query.Param in project commons by terran4j.

the class DsqlRepositoryProxy method getContext.

private Map<String, Object> getContext(Method method, Object[] args) throws BusinessException {
    Map<String, Object> context = new HashMap<>();
    // 没有参数的情况。
    Parameter[] params = method.getParameters();
    if (params == null || params.length == 0) {
        return context;
    }
    // 只有一个参数,并且没有 @Param 注解时,用 query 作默认的 key.
    if (params.length == 1 && params[0].getAnnotation(Param.class) == null) {
        if (args[0] != null) {
            context.put("args", args[0]);
        }
    }
    for (int i = 0; i < params.length; i++) {
        Parameter param = params[i];
        String key = param.getName();
        Param paramAnnotation = param.getAnnotation(Param.class);
        if (paramAnnotation != null) {
            key = paramAnnotation.value();
        }
        Object value = args[i];
        if (value != null) {
            context.put(key, value);
        }
    }
    return context;
}
Also used : HashMap(java.util.HashMap) Param(org.springframework.data.repository.query.Param) Parameter(java.lang.reflect.Parameter)

Example 2 with Param

use of org.springframework.data.repository.query.Param in project commons by terran4j.

the class DSynchronizedAspect method getNamesByAnno.

public static String[] getNamesByAnno(Method method) {
    List<String> names = new ArrayList<>();
    Annotation[][] paramsAnnos = method.getParameterAnnotations();
    if (paramsAnnos != null && paramsAnnos.length > 0) {
        for (Annotation[] paramAnnos : paramsAnnos) {
            if (paramAnnos == null || paramAnnos.length == 0) {
                continue;
            }
            for (Annotation paramAnno : paramAnnos) {
                if (paramAnno instanceof Param) {
                    Param param = (Param) paramAnno;
                    String name = (param == null ? "" : param.value());
                    if (StringUtils.hasText(name)) {
                        names.add(name);
                        break;
                    }
                }
            }
        }
    }
    return names.toArray(new String[names.size()]);
}
Also used : ArrayList(java.util.ArrayList) Param(org.springframework.data.repository.query.Param) Annotation(java.lang.annotation.Annotation)

Aggregations

Param (org.springframework.data.repository.query.Param)2 Annotation (java.lang.annotation.Annotation)1 Parameter (java.lang.reflect.Parameter)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1