[英]Hibernate Save() - 'Save Method' what is it mean by save() work outside the transaction?
好吧,當我了解到休眠的“ Persist”和“ Save”方法之間的區別時,很多文章特別強調了“ Save方法可以在事務邊界之外執行”
這句話讓我感到非常困惑,我讀了足夠多的文章來理解它的真正含義,但是沒有運氣! 現在我有幾點要澄清。
問題1
這是真的?? 如果為真
問題2
[假設交易是指物理數據庫交易]
據我所知,沒有事務就不會執行數據庫,那么在事務邊界之外意味着什么呢?
問題3
[假設交易是邏輯交易]
根據我引用的材料,“會話”列出了邏輯事務。 因此,即使它使用persist()或save()持久化數據,它也將僅在顯式提交或session.flush或關閉會話之后才刷新並提交。
由於會話是邏輯事務,沒有會話就無法執行,那么在事務外部進行save()工作意味着什么?
如果有人可以給我一個清晰詳細的答案,那將是一個很大的幫助。非常感謝!
這是一篇很好的文章,太長了,無法復制: https : //www.journaldev.com/3481/hibernate-session-merge-vs-update-save-saveorupdate-persist-example 。 在本質上:
問題1:是的,這是真的。 這意味着您無需先完成session.beginTransaction()
即可調用session.save(object)
session.beginTransaction()
。 您必須仍然有一個開放的會話。
Q2:事務意味着Hibernate的事務,大概會話仍將使用對數據庫的事務,但是事務很短,甚至是隱式的(自動提交)。
Q3:這意味着在由beginTransaction
啟動的Hibernate事務之外。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.