Baeldung
Hibernate中@Find注解详解:按方法命名约定生成仓库实现
本文介绍Hibernate 6.3及以上版本中的@Find注解,用于在仓库接口中按方法查询命名约定自动生成实现类。文章先演示环境搭建,包括引入hibernate-core 7.4.6与Jakarta Data API依赖、在maven-compiler-plugin中配置Hibernate Processor注解处理器,以及创建authors与books示例表与对应实体。随后说明标注@Repository的接口如何被编译期生成实现,并可通过返回EntityManager的方法变体,让实例在Spring等容器中一次创建、重复使用。@Find支持按实体字段过滤结果,返回单个实体或列表;空结果可用Optional或@Nullable处理,多结果则抛出NonUniqueResultException。借助$符号可沿@ManyToOne、@OneToOne关系进行嵌套字段查询。此外还支持@OrderBy静态排序、Order参数动态排序,以及传入PageRequest分页并返回Page对象以获取总元素数与前后页信息。