基础平台-项目管理+组织管理心得
mybatisPlus注解@TableField("is_xxx")失效问题
现象:增删改正常,is_xxx结果映射失败
原因:mybatisPlus注解只对自动生成的方法有效,对自定义的方法无效
解决:由于mybatisPlus注解只能拦截自动生成的方法,所以自定义方法中含有字段映射关系不同时(如is_xxx -> xxx),必须手动写入resultMap,以确保结果集成功映射。
controller接口@requestBody List XXX 报错:
现象:会报List无法序列化
原因:@requestBody是将前端参数转换成对象传入,需要对象类实现序列化接口,然而,ArrayList并没有实现Serializable无法序列化
解决:
1.改为Long[]接收参数,前端传入通过get请求XXX=1,2,3传入数组(不利于业务拓展,get请求有长度限制)
2.封装成对象,使用json格式传输(可拓展)
数据库并发访问导致的逻辑不一致
现象:数据库未建唯一索引时,多线程组织编码构建出现相同编码
构建编码过程:
1.根据上级编码统计当前层级的总数
2.插入构建的编码
原因:多个线程情况下,构建编码的过程不是原子操作,可能出现同步更新问题。
解决:
1.synchronized 锁对象或方法,不可行(synchronized只能锁单机,无法作用于分布式)
2.redis实现分布式锁(工具类:@RedisLock(keys = {"#自定义业务key"}))
版本一致时,maven依赖更新不及时
现象:版本一致时,maven依赖更新不及时
原因:版本一致时,maven优先调用本地库的依赖包,当本地库不存在时才会去远程仓库下载
解决:删除本地同版本的依赖包,重新下载远程依赖。
基本类型常量在前时,等号右边包装类为null仍然报空指针异常!
public static void main(String[] args) { Integer i = null; int constant = 1; if (constant == i) { // java.lang.NullPointerException!! System.out.println("test"); } }
原因:右边为包装类,编译时会优先转为基本类型进行判断,自动调用拆箱方法(null.拆箱方法)
解决:同时使用基本类型或者包装类,保持两边类型一致。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人