調用merge()方法,此時實體狀態並沒有被持久化,
但是數據庫中的記錄被更新了.
merge方法與update方法的差別在於針對同樣的操作update方法會報錯
session.merge()方法會首先發送一句select語句,去數據庫中獲取UserInfo持久化標識所對應的表記錄;然后自動生成一個持久化狀態的實體,與脫管狀態的實體做比較是否有所改變;一旦發生了改變,才會發送update語句執行更新。而按執行順序,若兩句session.merge()方法針對同一個脫管狀態的實體,那其結果只會執行最后一個session.merge()方法所發出的update語句。
db.session.commit()提交了數據到數據庫,但是沒有刷新模型映射中的數據,也就是model.query()中的數據。
而使用db.session.query()則是 從整個服務會話中進行查詢,而db.session.commit()提交的數據在這里是有刷新的
而使用db.session.query()則是 從整個服務會話中進行查詢,而db.session.commit()提交的數據在這里是有刷新的