zoukankan      html  css  js  c++  java
  • JPA中的动态添加(数据丢失)问题,密码验证错误

    原因

    在我们写代码的时候返回添加的数据中有一些数据是我们添加表单中没有的,这样会造成代码的丢失,当我们修改完成的时候JPA会自动的转化为空

    有三种处理方式

    1我们把前台的表单设置为隐藏表单,这样前台就可以接收到数据(但是复杂,而且密码这样的东西会加密,这样就二次加密我们自己把密码都改了)

    2在我们domain实体类中加上一个注解,我忘记了,但是这样JPA就不会是用set的时候添加改属性,所以也不会修改,但是我们添加的时候也添加不进去(不使用)

    3我们先去查询数据,然后把我们查询的数据作为我们传入接收的实体类,这样我们能接受前台的数据也能处理数据丢失了

     @ModelAttribute("editEmployee")
        public Employee beforUpdate(Long id,String cmd){
            //这样判断是为了区分update和delete
           if(id!=null &&"update".equals(cmd)){
               Employee employee = employeeService.findOne(id);
               //因为这里会和department产生关联,产生持久化对象。出现N TO N问题
               employee.setDepartment(null);
               return employee;
           }
           return null;
        }

    我们需要把他和我们需要的实体类连接起来

    @RequestMapping("/update")
        @ResponseBody
        //@ModelAttribute("editEmployee")保证 public Employee beforUpdate返回的Employee是这里的Employee一样的
        public JsonResult update( @ModelAttribute("editEmployee")Employee employee){
           return this.updateandsave(employee);
        }
  • 相关阅读:
    void及void指针含义的深刻解析
    jbpm入门样例
    给字符数组赋值的方法
    linux tar.gz zip 解压缩 压缩命令
    android 文件上传
    职员有薪水了
    sublime配置全攻略
    [置顶] WPF数据修改demo
    Java实现快速排序
    Java实现快速排序
  • 原文地址:https://www.cnblogs.com/xiaoruirui/p/11679954.html
Copyright © 2011-2022 走看看