初识JPA

1、什么是JPA?

        JPA的全称是Java Persistence API,翻译成中文就是java对象持久化应用程序接口。JPA是Sun公司在Java EE5中提出的java对象持久化应用程序接口。

2、JPA的优势是什么?

  • 标准化
  • 对容器级特性支持
  • 简单易用,集成方便
  • 可媲美JDBC的查询能力
  • 支持面向对象的高级特性

3、JPA的缺点是什么?

  • 性能不好?
  • 学习难度大,学习成本高?
  • 开发效率低下?

        我会按照上面的思路来一点点入门JPA,同时结合例子来说明JPA的优势和缺点,并结合一些博客文章来进行一些学习思路的讨论和分析。

        首先,我上网找了一些关于JPA简介的文章,这里贴出文章地址其中有一句话说:

        JPA是一种规范,而hibernate是JPA规范的一种实现。

        这里,我有了一些疑惑,JPA规范到底是啥?除了hibernate之外,还有哪些实现了JPA规范的框架呢?Mybatis是不是一个JPA规范实现框架呢?

        顺着这个思路,我又去查找到底啥是JPA规范,google和百度一番之后发现,网上大部分是讲解JPA或者SpringJPA怎么使用,而对整个JPA规范的来龙去脉有深入了解的文章不多,最后没办法,只在一篇博客上JPA规范的蛛丝马迹:https://www.tutorialspoint.com/jpa/jpa_architecture.htm

从上面的图示中,各位能看到啥?我刚开始也是一头雾水,但是再结合另一个博文:

https://blog.csdn.net/elementf/article/details/72674926

我大概理解了学习JPA的基本思路和步骤:

概述大概理解就好,重点需要掌握一下内容:

  1. 理解实体生命周期和实体管理
  2. 实体对象映射关系和如何使用
  3. 查询语言以及使用
  4. 高级映射关系
  5. 事件以及事件监听
  6. 实体关系

我们下一章节重点学习实体生命周期和实体管理

版权声明:著作权归作者所有。

相关推荐

JPA实体状态学习-(瞬时态:Transient)

为了学习实体的状态,我们还是贴出这张实体状态转换迁移图:Transient(瞬时态)按照上图的描述,java对象在内存中被赋值后,没有调用entityManager.persist()方法之前实体对象所处的状态。举个例子:Teacher teacher = new Teacher("email@dot.com");此时,实例teacher就处于new/transient态(备注:这里的new和tr

JPA实体状态学习-(持久态:Persistent)

今天我们继续学习JPA的实体状态转化,老规矩贴上实体转化的转化图: 上一节我们学习了:entityManager调用persist()方法后,实体的状态从transient到persistent,这个时候对persistent状态的实体改变也会同步持久化到数据库,执行tx.commit()之后实体进入detached状态,此时对实体进行改变后不会同步到数据库。今天我们来看看transie

Spring JPA报错:Not supported for DML operations

在一个Spring JPA项目中,执行更新或删除是报错:Not supported for DML operations解决方法:只需要添加注解@Modifying即可。@Modifying@Query(value = "update User user set user.address = :address where user.id = :id ")void updateUserAddress

初识parcel

webpack是一个很好的web应用打包工具,但是使用webpack需要很多繁琐的配置。parcel则提供了一个零配置的方案,大大简化了使用web应用的工具的难度。Parcel特性Parcel有以下一些特性:1、相比于Webpack, Rollup以及Browserify,Parcel打包时间极快这是Parcel做的一个基准测试,基于一个合理大小的应用,包含1726个模块, 6

使用ANDROID_ID唯一标识Android设备

使用Settings.Secure#ANDROID_ID 会返回每个用户唯一的64位hex字符串,它是在设备首次boot时生成。我们可以使用它来唯一标识Android设备。import android.provider.Settings.Secure; private String android_id = Secure.getStri