JPA的主要特点是什么?代码举例讲解

JPA的主要特点如下:

  1. ORM(Object-Relational Mapping):对象-关系映射,实现面向对象模型和关系模型数据之间的转换。
@Entity  
public class User {  
    @Id
    private int id;
    private String name;
}
  1. JPQL(Java Persistence Query Language):面向对象的查询语言,操作实体对象。
String jpql = "SELECT u FROM User u WHERE u.name = :name";  
Query query = em.createQuery(jpql);
query.setParameter("name", "John");
List<User> users = query.getResultList();
  1. 线程安全的EntityManager用于实体对象的操作(增删改查)。
EntityManager em = emf.createEntityManager(); 
EntityTransaction tx = em.getTransaction();
tx.begin();

User user = new User();  
user.setName("John");
em.persist(user);  

tx.commit();  
em.close();  
  1. 支持多种关系映射(一对一、一对多、多对多)和继承映射(JOINED、SINGLE_TABLE、TABLE_PER_CLASS)。
@OneToMany(mappedBy = "user")
private List<Order> orders;
  1. 双向关系映射及级联操作支持。
@ManyToOne    
@JoinColumn(name = "user_id")
private User user;
  1. 提供强大的查询功能(分页、排序、过滤、子查询、join等)。
  2. 支持一级缓存和二级缓存优化数据查询效率。
  3. 标准化的API,支持多种数据库(Hibernate、EclipseLink等)。