[英]When I save an Entity with hibernate the foreign key is not saved always an null
[英]If I modify a Hibernate entity, after doing a save, when I commit would the changes be saved to the database
如果在 Hibernate 中,我執行以下步驟:
我的問題是什么會被保存到數據庫中——我做 session.save() 之前的名稱還是更改后的名稱,即“其他名稱”?
保存實體的那一刻,它就成為托管的,所有進一步的更改都會在Session.flush
期間傳播到數據庫。
當您保存實體時,您只觸發了一個EntityInsertAction
排隊。 更改實體后,當前實體狀態已更改,因此在刷新期間,Hibernate 將簡單地插入最新的實體狀態,因此數據庫將包含"Other Name"
。
實際上,為托管實體(觸發實體merge
)調用save
類的方法實際上會影響性能。
在使用托管實體時,當您不調用 save 時,它將自動保存。
一旦您進行事務提交,您在會話中所做的一切都會提交到數據庫中。 即使您刷新會話,您也只是在內存中的表上添加更改,但沒有提交到數據庫。
所以最后,一旦 Hibernate 檢測到會話是臟的,它就會提交更改,以防您的配置中有自動臟檢查,並且它會足夠聰明地查看對象會話上的最后更改。 所以是的,你會有“其他名字”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.