Hibernate/JPA中避免save()冗餘呼叫
對於託管實體呼叫save是一個壞主意,因為Hibernate使用髒檢查機制來幫助我們避免這種冗餘呼叫。
關鍵點:
- Hibernate對於託管實體會觸發UPDATE語句,無需顯式呼叫save()方法
- 在幕後,進行冗餘save()呼叫意味著效能損失(見這裡)
@SpringBootApplication public class RedundantSaveApplication { private static final Logger logger = Logger.getLogger(RedundantSaveApplication.class.getName()); @Autowired private UserService userService; public static void main(String[] args) { SpringApplication.run(RedundantSaveApplication.class, args); } @Bean public ApplicationRunner init() { return args -> { userService.updateUserNameViaRedundantSave(); userService.updateUserNameRecommended(); }; } } @Repository public interface UserRepository extends JpaRepository<User, Long> { } |
@Service public class UserService { @Autowired private UserRepository userRepository; @Transactional public void updateUserNameViaRedundantSave(){ User user = userRepository.findById(1L).get(); user.setName("Hulyo G"); userRepository.save(user); //冗餘 } @Transactional public void updateUserNameRecommended(){ User user = userRepository.findById(1L).get(); user.setName("Magic J"); } } |
相關文章
- [20210419]避免冗餘的輸出.txt
- Hibernate/JPA如何保證不生成多餘的SQL語句?SQL
- JPA與hibernate-------JPA01
- Hibernate/JPA中@OneToOne和@MapsId的使用
- Hibernate/JPA中如何合併實體集合?
- 使用JPA和Hibernate呼叫儲存過程的最佳方法 - Vlad Mihalcea儲存過程
- 網路冗餘技術
- leetcode 684. 冗餘連線(圖中找環)LeetCode
- 如何刪除Git倉庫中冗餘的tag?Git
- 淺談JPA二:聊聊Hibernate
- 演算法題——冗餘連線演算法
- FHRP - 閘道器冗餘協議協議
- java中避免集合死鏈呼叫Java
- 【SpringBoot Demo】MySQL + JPA + Hibernate + Springboot + Maven DemoSpring BootMySqlMaven
- 使用Addressables+SpriteAtlas打包產生冗餘
- 資料庫設計——冗餘欄位資料庫
- org.hibernate.TransientObjectException: object references an unsaved transient instance - save the tObjectException
- 如何透過Hibernate/JPA在MySQL中儲存UTC時區?MySql
- 資料庫設計之欄位冗餘資料庫
- 如何消除冗餘資料的安全風險?
- 使用Hibernate、JPA、Lombok遇到的有趣問題Lombok
- 如何在SpringBoot中使用Hibernate/JPA的@NaturalId?Spring Boot
- 沒有理由在分散式系統中反對冗餘 (馬克)分散式
- VRRP-虛擬路由器冗餘協議VR路由器協議
- 如何使用Hibernate/JPA的JPQL/HQL查詢提取?
- hibernate在JPA規範中在控制檯無法出現SQL語句SQL
- SAP CRM Fiori應用冗餘round trip的原因分析
- 詳解分散式系統本質:“分治”和“冗餘”分散式
- VS Code 正則匹配(冗餘程式碼批量清理方法)
- JPA和Hibernate的樂觀鎖與悲觀鎖
- CRC(迴圈冗餘校驗)和CBC(密碼塊鏈)密碼
- 一文全懂:獨立冗餘磁碟陣列(RAID)陣列AI
- 資料庫效能優化之冗餘欄位的作用資料庫優化
- 有一些冗餘程式碼, 只是實現了功能
- 冗餘資料一致性,到底如何保證?
- hibernate及SpringBoot整合Jpa實現對資料庫操作Spring Boot資料庫
- Java-Annotation的一種用法(消除程式碼中冗餘的if/else或switch語句)Java
- 學習Hibernate5 JPA這一篇就夠了