ssj框架集成:解决数据丢失的方案三种方案-程序员宅基地

1.隐藏域 (前端页面写):麻烦,要写很多代码

2.SQL中不修改 (domain中通过注解将sql写死):不利于后面扩展

3.修改时先去数据库中查询:

注释:@ModelAttribute : 在访问任意路劲这个方法的时候会先执行它

 

            解决n-to-n的问题

 

            添加:/employee/save 修改:/employee/update?cmd=update

//保存方法
@RequestMapping("/save")
@ResponseBody
public Boolean save(Employee employee){
    if(employee.getDepartmentId().getId()==null||"".equals(employee.getDepartmentId().getId())){
        employee.getDepartmentId().setId(4L);
    }
    try {
        iEmployeeService.save(employee);
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
    return true;
}
//修改方法
@RequestMapping("/update")
@ResponseBody
public Boolean update(@ModelAttribute("copyEmployee") Employee employee){
    try {
        iEmployeeService.save(employee);
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
    return true;
}
//解决数据丢失问题
@ModelAttribute("copyEmployee")
public Employee copyEmployee(Long id,String param){
    //设定只有修改的时候才执行
    if(id!=null&&"update".equals(param)){
        Employee employee = iEmployeeService.findOne(id);
        /*
            解决n-to-n问题:让department为空,
            不然会因为前台传来departmentId.id这个参数
            而导致departmentId.id分割成而导致departmentId和id,生成持久化参数
         */
        employee.setDepartmentId(null);
        return employee;
    }
    return null;
}

 

转载于:https://www.cnblogs.com/kingofjava/p/10650915.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30765577/article/details/99730094

智能推荐

Android RecyclerView左滑侧滑显示删除按钮_android studio 自定义recyclerview 左滑显示按钮 万用适配器-程序员宅基地

文章浏览阅读1.9k次。创建一个Recyclerview列表item布局,自定义容器:SlidButtonView.javapublic class SlidButtonView extends HorizontalScrollView { private static final String TAG = "SlidButtonView"; private TextView lTextView_..._android studio 自定义recyclerview 左滑显示按钮 万用适配器

Linux Bash 基础和启动过程 (一)_程序启动bash-程序员宅基地

文章浏览阅读606次。业精于勤,荒于嬉,行成于思,毁于随 Linux常用的有Bash,Csh,Tcsh等系统每个用户再登录时就为其 启动一个shell 作为工作环境,默认为/etc/passwd文件内的shellshell基本功能环境控制,命令解释,启动程序,数据流重定向,管道功能,通配符,变量维护个shell编程等shell 通配符*匹配多个字符?匹配任意一个字符[list]匹配list中任意单一..._程序启动bash

jQuery 实现点击div以外其他地方隐藏div_jquery点击除div以外的地方-程序员宅基地

文章浏览阅读835次。<p><a href="javascript:void(0)" class="a">按钮</a></p><div class="menu"> <p>显示弹窗</p></div>$(".a").on("click", function(e){ if($(".menu").is(":hidden")){ $(".menu").show(); }else{ $(".._jquery点击除div以外的地方

Linux运维笔记----日志管理_chmod 2755 /var/log/journal-程序员宅基地

文章浏览阅读5.3k次。日志管理1.日志系统功能日志系统将我们系统运行的每一个状况信息都使用文字记录下来,这些信息有助我们观察系统运行过程中正常状态和系统运行错误时快速定位错误位置的途径等操作系统在运行中会产生非常多的日志信息,如果我们将这些信息都记录下来的话,那我们的磁盘I/O一定很繁忙,这对系统的性能有很大的影响,这就有违了我们的初衷,所以我们根据产生日志的来源和日志信息的重要性,将系统运行中所产生的日志进行分类2_chmod 2755 /var/log/journal

C# WinForm 添加等待界面 利用Gif图片实现-程序员宅基地

文章浏览阅读952次。首先 创建 等待窗体 WatingForm:其次 在WatingForm窗体下编写代码:View Code using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Lin..._winform等待图片gif

使用脚手架新建Vue项目和熟悉WebStorm编辑器的使用_webstorm 调用echarts-程序员宅基地

文章浏览阅读256次。使用脚手架新建Vue项目和熟悉WebStorm编辑器的使用使用脚手架新建Vue项目熟悉WebStorm编辑器的使用WebStorm一些常用快捷键和用法WebStorm ctrl+shift+F 快捷键,无法打开全局搜索使用脚手架新建Vue项目安装淘宝镜像:npm install -g cnpm --registry=https://registry.npm.taobao.org安装vue脚手架:cnpm install vue-cli -g 安装后输入 vue list 用于检测是_webstorm 调用echarts

随便推点

Photon通信过程解析《一》(用户登录)[unity3d-->ugui-->playmaker-->pun-->Photon3Unity3d.dll-->photon master serve-程序员宅基地

文章浏览阅读1.7k次。Photon通信过程解析《一》(用户登录)路线节点:[unity3d-->ugui-->playmaker-->pun-->Photon3Unity3d.dll-->photon master server-->mysql]步骤:1、【客户端】用户输入用户名、密码。设置PhotonNetwork.AuthValues。 -->AccountLogin.cs_photon master

Scala - Collections-程序员宅基地

文章浏览阅读82次。what will be covered in this post include the following. Sequence Lists Arrays List Buffers (the builder of List) ArrayB..._scala collections

OneFlow登上“2021世界人工智能大会SAIL奖Top 30”榜单_ai框架 排名 -baijiahao-程序员宅基地

文章浏览阅读1k次。近日,OneFlow新一代开源深度学习框架入选“2021世界人工智能大会SAIL奖TOP 30”榜单。_ai框架 排名 -baijiahao

如何使用OmniGraffle创建横向的画布_omnigraffle画布大小-程序员宅基地

文章浏览阅读962次。OmniGraffle(http://www.omnigraffle.cc/) 是一款绘图软件,它具有采用拖放的所见即所得界面。所谓的"Stencils"—一组用于拖放的形状—可以作为OmniGraffle的插件使用,用户也可以创建自定义的Stencils。有些用户吐槽OmniGraffle只有纵向的画布,今天就来教大家如何使用OmniGraffle创建横向画布。首先我们在中文网上下载正版Omn..._omnigraffle画布大小

FFmpeg源代码简单分析:avformat_open_input()_avformat_open_input 非阻塞-程序员宅基地

文章浏览阅读664次。登录 | 注册收藏成功确定收藏失败,请重新收藏确定标题标题不能为空网址标签 摘要公开取消收藏 查看所有私信查看所有通知_avformat_open_input 非阻塞

Android工具之被忽略的UI检视利器:Hierarchy Viewer-程序员宅基地

文章浏览阅读118次。Hierarchy Viewer是随AndroidSDK发布的工具,位置在tools文件夹下,名为hierarchyviewer.bat。它是Android自带的非常有用而且使用简单的工具,可以帮助我们更好地检视和设计用户界面(UI),绝对是UI检视的利器,但是好像很少有人提它,难道是因为太简单?具体来说主要功能有2个:1.从可视化的角度直观地获得UI布局设计结构和各种属性的信息,帮助我们..._android 帧率hierarchy csdn