首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
DAO.deletebyids这个方法是不是有bug
sbw
2025-05-23 17:07
debug发现逻辑里面有个根据参数的个数和表的主键字段个数作对比,不一样就报错
项目:
JPress
评论区
JFinal
2025-05-23 17:10
对比主键名数量与主键值数量,保障基本的参数正确
回复
sbw
2025-05-23 17:11
@JFinal
主键就一个啊 这个方法不是传入多个id根据id删除吗
回复
zzutligang
2025-05-23 17:42
@sbw
你理解错了,这个方法是传递复合主键的,复合主键有几个字段,这里就要传递几个值,这个方法功能还是删除一条数据。并不是你理解的传递多个主键值可以删除多条记录。
回复
杜福忠
2025-05-23 22:56
@sbw
Db.deleteByIds("user_role", "user_id, role_id", 123, 456); 是这样用的,不校验传入参数与表主键数量;
对应的sql是:DELETE FROM user_role WHERE user_id=123 AND role_id=456
注意是 AND 条件 ,不是OR 条件。
Model 是数据库表的映射对象,拼接sql前 校验ids数量没毛病。两个入口功能不一样。
PS:我们项目有自己封装一个D.java类,里面扩展了Db类的用法,其中就有传入一个ids list参数批量删除的(list参数是因为json传入的对象)。自己的类工具可以随意扩展贴合业务。
回复
星矢
2025-05-26 09:29
这方法是复合主键的删除, 跟批量删除不是一个玩意。
回复
sbw
2025-05-28 09:24
@星矢
谢谢
回复
sbw
2025-05-28 09:24
@杜福忠
谢谢
回复
sbw
2025-05-28 09:24
@zzutligang
谢谢
回复
发送
我要反馈
热门反馈
扫码入社