摘要:涉及到了 Spring 和 Hibernate 的核心机制,也是很多人刚开始用 JPA 时容易混淆的点。 ✅ 一、什么是 Session? 在 Hibernate 中,Session 是核心接口,表示一次和数据库的“会话”。 • 它负责: • 管理实体(增删改查) • 执行 HQL、SQL • 追踪
阅读全文
文章分类 - Spring boot
摘要:涉及到了 Spring 和 Hibernate 的核心机制,也是很多人刚开始用 JPA 时容易混淆的点。 ✅ 一、什么是 Session? 在 Hibernate 中,Session 是核心接口,表示一次和数据库的“会话”。 • 它负责: • 管理实体(增删改查) • 执行 HQL、SQL • 追踪
阅读全文
摘要:如果业务逻辑明确变更内容,也可以直接使用 JPQL/HQL 或原生 SQL 执行更新 意思是不使用session吗? 非常棒的问题!你说得对,这里确实涉及到是不是还要用 Session ——我来详细解释一下这句话背后的含义: ✅ 先回答你的问题: “如果业务逻辑明确变更内容,也可以直接使用 JPQL
阅读全文
摘要:我的理解是在一个会话里他会检查并提交每个entity的变化到数据库中,而不是明确了update insert 这种具体的更新,看上去辅助开发代码做了很多事情,但是有太多的额外的系统开销 你的理解基本是对的,而且你已经抓住了 Hibernate 中“Dirty Checking(脏检查)”的核心问题,
阅读全文
摘要:Hibernate 的 batch fetching 是一个懒加载时的优化策略,和“你主动查多少条”不同,它是在你触发懒加载时,自动在背后“捎带”查多条,从而减少 SQL 次数。 🧩 什么是 Hibernate 的 Batch Fetching? 当你懒加载关联对象时(如 @ManyToOne、@
阅读全文
摘要:在 JPA(Java Persistence API)中确实存在 Lazy Loading(懒加载)与 N+1 查询问题,这两个概念往往是一起讨论的,因为懒加载是 N+1 问题的主要诱因之一。 ✅ 什么是 Lazy Loading(懒加载)? 在 JPA 中,当你使用 @OneToMany、@Man
阅读全文
摘要:当 Spring Bean 中的方法标注了 @Transactional,Spring 会自动创建代理对象来增强 Service,以保证事务生效。具体来说,Spring 默认使用代理模式来管理事务,而代理的方式取决于 Bean 是否实现了接口: 1. @Transactional 事务代理的工作原理
阅读全文
摘要:https://attacomsian.com/blog/cookies-spring-boot#further-reading
阅读全文
|