美文网首页WEB
Spring Data学习 03 : JPA(未完待续)

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

作者: 我问你瓜保熟吗 | 来源:发表于2019-06-22 12:23 被阅读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接口:

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

    • 获取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);
    }
    

    相关文章

      网友评论

        本文标题:Spring Data学习 03 : JPA(未完待续)

        本文链接:https://www.haomeiwen.com/subject/hppmqctx.html