WEB

Spring Data学习 03 : JPA(未完待续)

2019-06-22  本文已影响0人  我问你瓜保熟吗

Spring Data 学习 01 :JDBC 访问 MySQL

Spring Data 学习 02 :Spring JdbcTemplate 访问 MySQL

Spring Data 学习 03 :JPA

Spring Data 学习 04:Spring Data JPA


一、什么是JPA
  • JPA(Java Persistence API) 是用于管理Java EE和Java SE环境中的持久化,以及对象/关系映射的Java API,具体实现有Hibernate、EclipseLink、Apache OpenJPA

二、JPA核心概念:

  • 实体表示关系数据库中的表
  • 每个实体实例对应于该表中的行
  • 类必须用javax.persistence.Entity注解
  • 类必须有一个public或protected的无参数的构造函数
  • 实体实例被当作值以分离对象方式进行传递(例如通过会话bean的远程业务接口),则该类必须实现Seriializable接口
  • 唯一的对象标识符,简单主键(javax.persistence.Id)、复合主键(javax.persistence.EmbeddedId和javax.persistence.IdClass)

三、表对应关系:

  • 一对一:@OneToOne
  • 一对多:@OneToMany
  • 多对一:@ManyToOOne
  • 多对多:@ManyTomany

四、EntityManger接口:

定义用于与持久性上下文进行交互的方法
创建和删除持久实体实例,通过实体的主键查找实体
允许在实体上运行查询

@PersistenceUnit
EntityManagerFactory emf;
EntityManager em;
@Resource
UserTransaction utx;
...
em = emf.createEntityManager();
try {
    utx.begin();
    em.persist(SomeEntity);
    em.merge(AnotherEntity);
    em.remove(ThirdEntity);
    utx.commit();
}  catch (Exception e)  {
      utx.rollback();
}
@PersistenceContext
EntityManager em;
public void enterOrder(int custID, CustomerOrder newOrder) {
    Customer cust = em.find(Customer.class, custID);
    cust.getOrders().add(newOrder);
    newOrder.setCustomer(cust);
}
上一篇下一篇

猜你喜欢

热点阅读