本文档主要介绍了Java Persistence API (JPA) 的基础知识,特别是与实体类的创建和持久化相关的准备步骤。JPA是Java EE 5中用于对象持久化的API,它是EJB 3.0规范的一部分,旨在提供一种标准化的方式来处理关系数据库的操作,无论是在J2EE容器还是非容器环境中都能使用。
首先,实体类是JPA的核心概念,如`Address`和`Customer`类所示,它们通过`@Entity`注解标记为持久化类。`@Table`注解用于指定映射到数据库的表名,例如`Address`表映射到名为"ACCP50NT_ADDRESS"的表,而`@Table(name="CUST", schema="RECORDS")`则表明`Customer`表位于"RECORDS"模式下。
JPA的主键生成方式是通过`@GeneratedValue`注解控制的,它支持多种策略,包括IDENTITY(Oracle不支持)、AUTO(默认,选择底层数据库适配的策略)、SEQUENCE(MySql不支持)、和TABLE(提供更好的移植性,生成的表名由具体实现决定)。每个策略都有其优缺点,例如increment可能导致并发插入冲突,而native和uuid.hex则提供了更好的性能和跨平台支持。
Hibernate的主键生成器提供了更多的选择,如assigned(外部生成)、hilo(Hi/Lo算法)、seqhilo(使用Sequence)等。其中,uuid.hex和uuid.string通常因为良好的性能和适应性而被推荐,尤其是在并发要求高的场景中。然而,数据库自身的主键生成机制如identity和sequence,虽然方便但可能在高并发时性能不佳。
JPA的开发步骤包括添加带有元数据注解的实体类,设置主键生成策略,以及通过EntityManager API进行增删改查操作。理解这些基本概念和配置,是使用JPA进行Java应用持久化开发的基础。在实际项目中,开发者可以根据项目需求和数据库特性选择最合适的主键生成策略,并利用JPA提供的API实现数据的高效管理和持久化。