用途:用于 Spring Boot 中的数据建模、仓库层(Repositories)实现与性能调优,激活场景包括设计实体与表映射、定义关联关系、优化查询、配置事务与审计、设置分页排序、调优连接池与缓存。
主要能力与用法:实体设计用 @Entity、@Table 配合 @Index 声明索引,@Enumerated(EnumType.STRING) 映射枚举,@CreatedDate/@LastModifiedDate 配合 @EnableJpaAuditing 启用审计。关联关系通过 @OneToMany、@ManyToOne、@ManyToMany 定义,默认使用延迟加载,必要时在查询中以 JOIN FETCH 抓取,避免在集合上使用 EAGER,读取路径采用 DTO 投影。Repository 基于 JpaRepository,可用派生查询与 @Query,轻量查询使用投影接口。事务在 Service 方法上标注 @Transactional,读取路径使用 @Transactional(readOnly = true),谨慎选择传播行为,避免长事务。分页用 PageRequest 配合 Sort,类游标分页在 JPQL 中加入 id > :lastId 并配合排序。
性能与配置:为常用过滤器与复合条件建索引,避免 select *,仅投影所需列,批量写入用 saveAll 与 hibernate.jdbc.batch_size。HikariCP 推荐配置 spring.datasource.hikari.maximum-pool-size=20、minimum-idle=5、connection-timeout=30000、validation-timeout=5000,PostgreSQL LOB 可加 spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true。缓存方面注意一级缓存基于 EntityManager,避免跨事务保留实体;二级缓存仅对读多写少实体谨慎使用并验证逐出策略。
限制与约定:数据库迁移使用 Flyway 或 Liquibase,生产环境绝不依赖 Hibernate 自动 DDL,迁移脚本保持幂等与增量;测试优先 @DataJpaTest 配合 Testcontainers,通过 logging.level.org.hibernate.SQL=DEBUG 与 logging.level.org.hibernate.orm.jdbc.bind=TRACE 断言 SQL 效率。其余未在资料中提供的细节暂未提供。