“疑难杂症”乱炖一篇

来源:互联网 发布:国内可备案的域名 编辑:程序博客网 时间:2024/05/17 04:01

近期在上线一个模块,工作量比较大,故晚上经常性加班,工作日生活有点两点一线。

期间遇到了形形色色的一些问题,大致记录下。

工具:IDEA

Q1:修改了一个Entity,准备删掉一个字段。

启动tomcat时候,localhost:8080 无法正常打开网页。

Debugger显示:Connected to the target VM, address: '127.0.0.1:57484', transport: 'socket   (刚又尝试了一遍,删除Entity中的变量,正常部署项目.....尴尬了)


原因:由于在项目中的这些字段是直接映射到数据库字段里的,所以当我在Entity里删了该字段之后,导致无法映射成功。

解决方法:

目前对字段对应的变量做什么操作。

原考虑:

1,直接在Entity的变量上增加注解:@Transient,防止映射到数据库里

2,直接删除变量


显然第二种实在点。


Q2:页面跳转问题(Ajax)

类似流程:前端页面输入一个数值,该值传入后台Controller里,进行查询数据库,如果查询到该值,要在原页面上提示 数值已存在,如果没查询到,则执行某insert 操作,跳转到另一个页面。

解决方法:

采用Ajax控制,大致代码逻辑如下:

$.ajax({    url: "check",      //进入到Conroller中的@GetMapping(path = "/check", produces = MediaType.APPLICATION_JSON_VALUE)    type: "GET",       //GET方式    data: { K: V },     //传入后台的值    dataType: "json",    success: function(data) {        if (data.result== 0) {                     //根据后台ResponseEntity传回的数据,在后台代码中,
                                                    //我这里用ModelMap model,将model.addAttribute("result" ,result); result=0 表示查询不到数据
                                                    //return ResponseEntity.ok(model)
         location.href = "nextPage";       //跳转到新页面        } else {            $("#errorText").text("数值已存在");     //弹出提示语            return;        }    },})

具体语法请百度下,我用得相对简单。


Q3:设置查询时间(只是觉得有趣,故记录下)

前端页面有个时间范围的搜索条件,当输入值之后,并没有将endDate设置为选定日期的23:59:59,似乎是因为项目中没有使用插件的原因

为了统一下风格,故在后台进行处理。

这里将时间设置为查询日期的23:59:59

Calendar endCalendar = Calendar.getInstance();endCalendar.setTime(endDate);//时:分:秒endCalendar.set(Calendar.HOUR_OF_DAY, 23);endCalendar.set(Calendar.MINUTE, 59);endCalendar.set(Calendar.SECOND, 59);return endCalendar.getTime();
Q4:映射数据库字段问题(比较有趣的点)MySQl
某表新增加一个字段,在Entity里只需增加一个成员变量即可( JPA 规范机制)
但新增字段比较特殊,是一个外键,即用来关联另一张表的 XXid。
实操:
成员变量为另一个表对应的Entity类型 XX,映射到数据库之后显示为XX_id。
即在Entity中直接创建了一个对象 作为成员变量。










原创粉丝点击