下面列出了 JPA(Java Persistence API)和 Hibernate 中常用的注释。
JPA 注释
- @Entity:指定类是一个实体,并映射到数据库表。
- @Table:指定与实体关联的表名。
- @Id:将字段标记为实体的主键。
- @GenerateValue:指定生成主键值的策略。
- @Column:指定数据库列的映射。
- @Transient:排除某个字段被持久保存在数据库中。
- @OneToOne:定义两个实体之间的一对一关系。
- @OneToMany:定义两个实体之间的一对多关系。
- @ManyToOne:定义两个实体之间的多对一关系。
- @ManyToMany:定义两个实体之间的多对多关系。
- @JoinColumn:指定关系的外键列。
- @Embedded:指定实体的持久字段或属性,其值为可嵌入类的实例。
- @NamedQuery:声明实体的命名查询。
- @NamedNativeQuery:声明实体的命名本机 SQL 查询。
- @Version:指定乐观锁的版本字段。
- @Temporal:指定日期或时间字段的类型。
- @Lob: @Lob注释用于将属性或字段映射到数据库中的大对象列。
Hibernate 注释
- @Cascade:指定关联的级联行为。
- @Fetch:指定关联的获取策略。
- @LazyToOne:指定一对一关联的延迟加载行为。
- @LazyCollection:指定集合关联的延迟加载行为。
- @BatchSize:指定加载集合关联的批量大小。
- @Cacheable:启用实体或集合的缓存。
- @Cache:指定实体或集合的缓存区域和缓存策略。
- @Formula:使用 SQL 公式定义计算属性。
- @NaturalId:将属性标记为自然标识符。
- @Filter:定义要应用于集合关联的过滤条件。
- @Where:指定要应用于集合关联的 SQL WHERE 条件。
- @Type:指定属性的 Hibernate 类型。
- @Any:将多态关联映射到任何实体类型。
- @TypeDef:定义自定义 Hibernate 类型。