JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA的宗旨是为POJO提供持久化标准规范。Hibernate3.2、TopLink 10.1.3以及OpenJPA都提供了JPA的实现。
JPA定义了独特的JPQL(Java Persistence Query Language),是面向对象而非面向数据库的,它以面向对象的自然语法构造查询语句,可以看成是Hibernate HQL的等价物。
注意:persistence.xml文件一定要放在/WEB-INF/classes/META-INF这里才能生效。
<!-- Spring 事务配置,声明式事务,即用注解来实现事务开始和提交等操作 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
@PersistenceContext
private EntityManager em;
相当于:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("SimplePU");
EntityManager em = emf.createEntityManager();
//声明式事务
@Transactional
public void save(Product p) {
em.persist(p);
}
相当于:
em.getTransaction().begin();
em.persist(p);
em.getTransaction().commit();
emf.close();