今日开发踩坑日记一
迁移数据库后删除不了数据
以前在别的项目写的功能被别的开发前后端连同数据库全移到别的服务器了,今天测试出现数据无法修改和删除,处理完后遂记录此坑。
oracle数据库迁移,tablespace改变后需要重新设置索引。经过实际测试发现,没有数据的表索引正常,有数据的表索引会失效。
-
rebuild索引即可
ALTER INDEX 需要重建的索引名 REBUILD; -
如果rebuild后还不可,则可以先删除索引,再建立索引。
定时任务被加载两次
使用@Scheduled注解定时每30秒产生一条设备状态监控,结果发现每次都产生2条状态数据。
- 首先,检查代码是不是代码逻辑问题从而保存了两条记录。
- 其次,检查cron表达式,"0/30 * * * * ?"。有个文章写的是表达式是5分钟的每秒都运行。
- 最后,是不是加载了两次,xml初始化一次,注解扫描一次,所以加载两次。在我的项目中,注解扫了一次。
@ComponentScan(basePackages = {"com.smartpark"})
有个配置类也扫了一次,恰恰我的定时方法就写在了controller中,所以就执行了两次。
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.scan("com.smartpark.clientserver.controller");
解决方法:我没敢动配置类,谁知道有啥坑,所以就写在了service中,完美解决。