今天在使用session.save(),進行插入數據操作時,一直沒有成功,也沒有報錯。后來發現是因為沒有創建事務,提交事務的原因
你對flush和commit的意思沒有理解到:
1,flush代表刷新,同步一級緩存中的對象到數據庫中,僅僅代表把SQL刷到了數據庫中,
2,commit代表提交事務,tx.commit之后,之前發送的SQL才真正提交了,數據表里面才有值;
3,在默認情況下,commit之前都要自動調用flush,
所以:
1,session.save();session.flush()只是把SQL發到了數據庫中,事務沒有提交,數據表中還是沒有數據的,
2,session.save(),transaction.commit(),在commit的之前,隱含調用了flush,即發送了SQL,又提交了事務,所以有值;