"这份文档是JPA(Java Persistence API)的标签手册,源自ORACLE官方,详尽地解释了JPA中的各种注解,涵盖了实体、属性映射、关系映射等多个方面。" 在Java Persistence API (JPA)中,注解是配置实体类与数据库表之间映射的主要方式,使得开发者可以声明式地定义对象如何映射到关系数据库。以下是一些关键的JPA注解及其功能: 1. **@Entity**: 标记一个Java类为实体类,对应数据库中的表。 2. **@Id**: 标识实体类中的字段作为主键,通常配合@GeneratedValue使用,用于自动生成主键值。 3. **@GeneratedValue**: 用于指定主键生成策略,如序列、自增等。 4. **@Basic**: 声明一个非持久化属性,表明该字段应被存储在数据库中。 5. **@Column**: 配置实体类属性与数据库列的映射,包括列名、长度、是否允许为空等。 6. **@Temporal**: 用于日期和时间类型的字段,指定时间类型,如TIMESTAMP、DATE或TIME。 7. **@ManyToOne, @OneToMany, @OneToOne**: 定义不同类型的关联关系,如一对一、一对多、多对一。 8. **@JoinColumn, @JoinColumns**: 用于指定关联表的外键列,可配置列名、约束等。 9. **@ManyToMany**: 处理多对多的关系,通过中间表实现。 10. **@Embeddable, @Embedded**: 支持嵌入式复杂类型,将一个类的实例作为另一个类的属性,一同存入一个表。 11. **@EmbeddedId**: 当主键由多个字段组成时,使用@EmbeddedId和@Embeddable组合定义复合主键。 12. **@Inheritance**: 控制实体的继承策略,如单表继承、分表继承等。 13. **@Table**: 定义实体对应的数据库表名,以及表的特定属性,如索引、唯一约束等。 14. **@GeneratedValue, @SequenceGenerator**: 用于生成序列化的主键,常与Oracle等支持序列的数据库一起使用。 15. **@Lob**: 用于大对象(LOB)的映射,如BLOB(二进制大对象)和CLOB(字符大对象)。 16. **@Orderby**: 定义关联集合的排序规则。 17. **@NamedNativeQueries, @NamedNativeQuery**: 定义命名的原生SQL查询,可重用。 18. **@NamedQuery**: 预定义的JPQL查询,提高代码的可读性和复用性。 19. **@EntityListeners**: 注册实体监听器,用于执行实体生命周期中的特定操作。 20. **@Temporal**: 指定日期和时间字段的存储类型。 21. **@Transient**: 标记一个字段不作为持久化属性,不会存储到数据库中。 22. **@AssociationOverride, @AttributeOverride**: 在继承关系中,覆盖父类的关联或属性映射。 这些注解构成了JPA的核心,让开发者能够灵活地控制数据模型和数据库之间的映射,实现对象关系映射(ORM)。在使用JPA进行开发时,理解并熟练运用这些注解至关重要,可以提升代码的可维护性和数据库操作的效率。
剩余63页未读,继续阅读