0%

项目遇到一个奇怪的问题,分页查询的页面会自动在两页之间跳变,F5刷新之后问题消失,第一次测试报这个问题的时候,让测试按照最近的操作重试一下,又重现了一次,想着应该是必现问题,后面再看,结果后面再看的时候,怎么都无法重现了。过了一段时间,问题又再次出现,这次一定不能再放过了,F12查看网络调用,发现确实会发送两次调用,两次都是定时刷新触发的,自此心里基本有数应该是定时器导致的。接下来通过分析代码,终于找到问题的根源,是因为出现僵尸定时器,在背后还在一直运行,它里面的状态是不会变的,始终是某一页,这样切换到新的页之后,就会在两页之间自动切换。这个问题还挺隐晦的,特此记录下。

阅读全文 »

最近项目中碰到一个奇怪问题,项目是react+antd+umi实现,当页面中点击对话框,页面会自动滚动到最上面。最终定位跟antd dialog的实现有关,在某种条件下会触发此问题,下面分享一下问题定位过程,希望对遇到类似问题的同学有所帮助。

阅读全文 »

又是一个antd组件问题,密码组件在dom中可以看到密码,这算是一个低级的问题,为什么还会存在这种问题,翻看antd源代码,发现其实专门解决过这个问题,但是并没有解决彻底,在某些场景下仍然存在。

阅读全文 »

最近测试同学提了一个问题,觉得antd的时间选择组件,没有提示时分秒,不太友好。这种问题都能够提出来,是不是感觉咱们的前端水平已经被激发到极致了,估计antd是不太会接受这种问题的。这种问题怎么解呢,你还别说,真让我想到一个好办法,那就是用css伪类。

阅读全文 »

项目中的下拉菜单项越来越多,最近又加了分组,长长的一条非常难看,能不能把它改成横向布局呢。项目是用的antd,研究了下antd的下拉菜单是用ul,li实现的,通过css的flex布局和grid布局很容易实现横向布局,当然也可以只用grid布局实现,grid对于一维二维都可以胜任,更加强大。

阅读全文 »

使用Spring Data Jpa的CriteriaQuery进行动态条件查询时,可能会遇到一个陷阱,当条件为空时,查询不到任何结果,并不是期望的返回所有结果。这是为什么呢?

阅读全文 »

Spring Data JPA对于单表操作非常方便,采用定义接口的方式,不用写任何实现代码就可以获得常用的数据库操作。但是对于多表联合查询,则不那么方便了,目前公司项目是采用数据库视图的方法,将多表联合查询全部变成了单表查询。数据库视图有众多好处,不失为一种解决方案,但是也存在一些弊端:

  • 当数据库表结构变化需要同步修改视图,维护繁琐;
  • 业务需求变化可能导致频繁修改视图暴露的字段;
  • 有些场景可能只需要2表联合,有些场景需要更多表联合,要么建立一个大视图,要么需要建立多个类似视图,都不太好;
  • 视图的SQL会变得越来越庞大,难以维护;
  • 定义了实体类,JPA自动建表会把视图建成表;
  • SQL SERVER会将视图的查询转换为对基本表的查询,性能不高。

总之将一部分业务逻辑放到数据库层维护,并不是一个特别好的方式。那么Spring Data JPA对多表查询还有哪些方法呢?有没有更好的选择呢?

阅读全文 »

在springboot中开发RESTful接口,经常会遇到日期时间转换相关的问题,例如我们明明输入看起来很正常的日期时间字符串,但是系统却报错无法解析:

JSON parse error: Cannot deserialize value of type java.time.OffsetDateTime from String “2020-06-06 14:26:31”

或者接口返回的日期时间字符串是一个很奇怪的字符串:

2020-06-04 14:41:54.767135400+08:00

如何正确的处理日期时间,本文将一探究竟。

阅读全文 »

最近用vscode远程开发功能调试一台centos虚拟机上的python的时候遇到connection refused问题,而之前在windows本地环境一直是好的,非常奇怪。研究了2天的时间,才把问题找到,通过定位问题,把vscode的调试器的架构也有了更深入的了解,下面记录下问题定位过程。

阅读全文 »