如何在Prisma中实现完整替换关联关系的PUT更新方法
Prisma中PUT方法全量替换关联关系的解决方案
要实现更新checkout时完全替换所有plans关联,不用手动处理disconnect,直接用Prisma提供的set操作替代原来的connect即可。set会自动清除当前所有关联,再建立传入的新关联,正好匹配PUT方法全量更新的需求。
修改后的代码如下:
this.connection.update({ where: { id }, data: { name, description, picture, updatedAt: new Date(), plans: { set: plans.map((id) => ({ id })), // 用set替换connect }, }, include: { plans: true, }, });
关键说明:
- 若传入的
plans数组为空,会直接清空该checkout的所有plans关联 - 无论传入的数组是新增、减少还是完全替换原有ID,
set都会确保最终关联与传入数组完全一致 - 相比手动先
disconnect再connect,set是原子操作,能避免中间状态的一致性问题
内容的提问来源于stack exchange,提问作者Fox-Carlinhos
相关产品推荐
相关产品推荐

