[英]Understanding how transactions work
我正在使用Spring並使用休眠和JPA。 當我為我的方法提供事務性上下文時,我想知道它是如何工作的。 例如,我有一些實體類人員。 我創建了一個Person bob
並保留了該實體。 如果我調用getPersonByName("bob")
,交易結束前會返回bob嗎?
簡短的答案是:這取決於如何執行讀取操作。
您可以打開日志記錄並設置測試工具以親自查看。 您可以按照以下說明啟用SQL查詢和參數打印 。
2個警告:
@Transactional
方法中,默認傳播級別) 在Hibernate中, 第一級緩存默認情況下處於激活狀態。 它鏈接到一個Hibernate 會話 ,由它獲取的所有實體都存儲在該會話中。 結果,寫后的后續讀操作不應往返於同一Session中的DB 。
現在,默認情況下不使用Hibernate的一級緩存 ,除非您使用:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.