今天来抄添加属性的功能,看了看在productService里。
1. @Transactional
@Transactional注解在代码执行出错的时候能够进行事务的回滚。
只能用于public方法,并且被另一个内部函数调用时不生效。
2. @Data
Lombok注解之一。
2. 先获取属性列表和商品列表
3. Mybatis updateByPrimaryKeySelective的使用
selective就是没填的字段不更新,而不是改成null
Method setId = item.getClass().getMethod("setId", Long.class);
setId.invoke(item, (Long) null);
看这两行代码,获取了运行中类的方法,然后抽象地执行一下
5. @Param
List<ProductAttrInfo> getProductAttrInfo(@Param("id") Long productCategoryId);
@Param是写到sql中的变量
6. 更新逻辑
先把product的属性更新一遍,至于product_attribute,先把原来的删了,然后添加新的。但这样感觉id会变得很大。算了就要应用的规模这个问题也不严重。而且这个id看起来也没用,到时候删掉也可以(
阅读材料:mysql自增id超大问题的排查与解决_mysql 压缩自增长
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?