前言
最近在工作中遇到一個問題,在使用Orm2進行model修改時,發現當對關聯字段進行update操作時,執行了2次SQL,第一次把值改為了我們期望的值,第二次又會把值改回成原來的值。
經過調查,當autoFetch開啟時,會自動取得關聯model,此時的model為:
{roomId: xxx, // 關聯的roomIdroom: {// 關聯的room對象}}
第一次會按照roomId去修改,第二次則會按照fetch的關聯對象room進行修改,導致了我們看到的執行了兩次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 });});
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如有疑問大家可以留言交流,謝謝大家對武林網的支持。
新聞熱點
疑難解答