前言
最近在工作中遇到一個問題,在使用Orm2進行model修改時,發(fā)現(xiàn)當(dāng)對關(guān)聯(lián)字段進行update操作時,執(zhí)行了2次SQL,第一次把值改為了我們期望的值,第二次又會把值改回成原來的值。
經(jīng)過調(diào)查,當(dāng)autoFetch開啟時,會自動取得關(guān)聯(lián)model,此時的model為:
{roomId: xxx, // 關(guān)聯(lián)的roomIdroom: {// 關(guān)聯(lián)的room對象}}第一次會按照roomId去修改,第二次則會按照fetch的關(guān)聯(lián)對象room進行修改,導(dǎo)致了我們看到的執(zhí)行了兩次SQL的情況。
解決方法
在save操作前將fetch的對象刪除即可。
for (var j in originEntity) {if (_.isObject(originEntity[j])) {delete originEntity[j];}}originEntity.save(function(err) {if (err) {return res.json({ errMsg: err[0].msg });}return res.json({ code: 200, data: originEntity });});總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如有疑問大家可以留言交流,謝謝大家對錯新站長站的支持。
新聞熱點
疑難解答
圖片精選