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;
}
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()]);
}
Aggregations