新Bos项目使用的技术

来源:互联网 发布:广西广电网络投诉 编辑:程序博客网 时间:2024/06/03 23:50

SpringJpa 没有好用的update函数,写sql感觉有点蠢,所以用了反射

  • 使用反射技术和Pattern
    传过来的实体为standard
    public void update(Standard standard) throws InvocationTargetException, IllegalAccessException, NoSuchMethodException {
    Integer id =standard.getId();
    Standard one = standardRepository.findOne(id);
    Class clazz=standard.getClass();
    Method[] methods = clazz.getMethods();
    String regex=”^(get)(?!Id)(\w+)”;
    Pattern pa=Pattern.compile(“regex”);
    String name;
    for(Method me:methods){
    name=me.getName();
    Matcher matcher = pa.matcher(name);
    if(matcher.find()){
    Object obj = me.invoke(standard, null);
    if(obj==null){
    continue;
    }
    String group = matcher.group(2);
    Method method = one.getClass().getMethod(“set” + group, me.getReturnType());
    method.invoke(one,obj);
    }
    }
    }

注意用的是findOne,getOne会报错。
因为getone返回的是一个对象的引用,没有这个对象,自然就报错了

原创粉丝点击