"JavaPersistence2.1是Java持久化领域的一个关键规范,由专家小组(Expert Group)主导,其中Specification Lead由Linda DeMichiel,来自Oracle公司担任。该规范的最终版本发布于2013年4月2日,即JSR 338:JavaTM持久化API,版本2.1。此版本的发布标志着Java持久化技术的进一步成熟和完善。文档的版权归属于Oracle America, Inc.,并提供了有限的许可供用户进行内部评估和应用开发。
Java Persistence API (JPA) 是Java平台上的一个标准接口,用于处理对象关系映射(ORM),它允许开发者使用面向对象的编程模型来操作数据库,而无需直接编写SQL语句。JPA 2.1 版本在JPA 2.0的基础上增加了更多功能和改进,旨在提高性能、灵活性和易用性。
在JPA 2.1中,主要包含以下关键知识点:
1. **实体管理(Entity Management)**:JPA提供了一种方式将Java类映射到数据库表,使得开发者可以使用Java对象直接操作数据,而不需要编写繁琐的SQL。实体(Entity)是这个映射的核心概念,通过@Entity注解标识。
2. **持久化上下文(Persistence Context)**:持久化上下文是JPA中的核心概念,它管理着实体对象的生命周期和状态。它保持了与数据库的一致性,并负责缓存、级联操作和延迟加载。
3. **查询语言(Query Language)**:JPA引入了JPQL(Java Persistence Query Language),一种面向对象的查询语言,类似于SQL,但用于查询实体对象。此外,还有 Criteria API,提供了一种类型安全的方式来构建动态查询。
4. **关系映射(Relationship Mapping)**:JPA支持一对一、一对多、多对一和多对多的关系映射,允许开发者轻松处理复杂的对象关系。
5. **事务管理(Transaction Management)**:JPA支持声明式和编程式的事务管理,与Java EE容器集成时,通常采用声明式事务管理,简化了事务处理。
6. **懒加载(Lazy Loading)**:JPA支持延迟加载,只有在真正需要关联数据时才去数据库加载,以此优化性能。
7. **实体监听器(Entity Listeners)**:允许定义实体事件的监听器,如在插入、更新或删除实体时执行特定操作。
8. **存储过程(Stored Procedures)**:JPA 2.1增强了对存储过程的支持,可以直接调用数据库的存储过程。
9. **新特性**:包括但不限于:集合的嵌套查询、可更新视图、自动生成主键策略的扩展、多租户支持等。
学习和理解这些知识点对于开发基于Java的、需要与数据库交互的应用程序至关重要,JPA 2.1的这些特性使得开发者能够更高效、更灵活地处理数据持久化问题。"