Java Persistance API
Scnu_wang
Keep learning and you will be closer to success!
展开
-
[JavaEE - JPA] 1. 事务的基础概念
现在任何应用都需要数据持久化。否则就不算是一个完整的应用。那么对于一个数据持久化而言,最重要的无外乎两方面:事务管理(Transaction Management)对象关系映射(Object Relational Mapping)本文作为JPA(Java Persistence API)这一系列文章的首篇,就来先谈谈事物管理相关的一些概念和基础。事务(Transaction, TX)事务管理,转载 2017-08-10 14:56:17 · 251 阅读 · 0 评论 -
[JavaEE - JPA] 2. EJB中的事务管理
在上一篇文章中介绍了事务的基本概念,包括事务的ACID性质,以及事务的类型并且稍微提到了事务划分。对于任何一个需要持久化数据的应用而言,事务划分(Transaction Demarcation)的规划都是非常重要的一环。如果规划的不好,轻则影响性能,重则会导致在某些情况下数据发生不一致,从而严重影响业务逻辑的顺利进行。本文继续介绍事务划分在当前JavaEE技术体系下基于EJB的实现方案。虽然EJB算转载 2017-08-10 15:10:55 · 332 阅读 · 0 评论 -
[JavaEE - JPA] 3. Spring Framework中的事务管理
前文讨论了事务划分(Transaction Demarcation)在EJB中是如何实现的,本文继续介绍在spring Framework中是如何完成事务划分的。我们已经知道了当采用Container事务类型的时候,事务划分主要有以下两种方案(参考这里):使用JTA接口在应用中编码完成显式划分在容器的帮助下完成自动划分在使用JavaEE的EJB规范时,这两种方案分别被实现为BMT以及CMT,关转载 2017-08-10 15:12:29 · 300 阅读 · 0 评论 -
[JavaEE - JPA] 4. EntityManager相关核心概念
前三篇文章花了一些笔墨介绍了事务的概念以及在EJB和spring Framework中分别是如何完成事务管理的。之所谓花了比较大的代价来介绍事务主要也是因为不管在什么类型的持久化应用中,都包含下面两个关键点:事务管理对象关系映射(ORM)而JPA主要定义的就是和对象关系映射(ORM)相关的内容。从本篇文章开始,会系统性地介绍JPA的方方面面。核心概念及其关联关系首先,当然是介绍最核心最重要的E转载 2017-08-10 15:30:11 · 273 阅读 · 0 评论 -
[JavaEE - JPA] 5. ORM的核心注解 - 访问方式,表映射以及主键生成
从本篇文章开始,会系统性地介绍JPA中用来实现对象关系映射(Object Relational Mapping)的核心注解,以及基础类型,关系类型,嵌套类型以及集合类型的映射方式。注解种类在探讨实现JPA中各种映射的方式之前,可以先看看JPA中的注解类型。 由于ORM这一机制涉及到了两个方面:对象(内存模型)以关系数据(关系型数据库)。而显然我们在配置ORM的各种规则时,只能在Java程序中完成。转载 2017-08-10 15:39:58 · 281 阅读 · 0 评论 -
[JavaEE - JPA] 6. ORM的核心注解 - 基础类型以及嵌套类型
本文继续介绍JPA ORM的核心注解中和基础类型映射相关的部分。基础类型映射所谓的基础类型映射,实际上就是Java中定义的数据类型应该如何被JDBC转换成数据库所支持的数据类型。而这些基础类型,主要包括了以下9种:简单类型:byte,int,short,long,boolean,char,float以及double简单类型对应的包装类型:Byte,Integer,Short,Long,Boole转载 2017-08-10 16:10:00 · 266 阅读 · 0 评论 -
[JavaEE - JPA] 7. ORM的核心注解 - 关系类型
本文继续介绍JPA ORM的核心注解中和关系映射相关的部分。关系映射的处理绝对是一个JPA应用最为重要的部分之一。关系映射处理的好,不仅仅是建模上的成功,而且在程序性能上也会更胜一筹。关系映射处理的不好很容易造成程序性能底下,各种Bug频繁出现,而且这些Bug通常还会比较隐蔽,总是在关键时刻掉链子。我想这也是为什么很多开发人员说JPA入门容易,精通难得原因之一。因为关系确实不是那么好处理的,不仅需要转载 2017-08-10 16:38:31 · 216 阅读 · 0 评论 -
使用JPA实现乐观锁
乐观锁的概念就不再赘述了,不了解的朋友请自行百度谷歌之,今天主要说的是在项目中如何使用乐观锁,做成一个小demo。持久层使用jpa时,默认提供了一个注解@Version先看看源码怎么描述这个注解的/** * Specifies the version field or property of an entity class that * serves as its optimistic lock转载 2017-08-10 16:54:53 · 568 阅读 · 0 评论 -
Spring Data JPA使用复合主键
演示环境MySQL 5.7JDK1.8spring-data-jpa 1.10.4.RELEASEhibernate 5.1.2.Final这里演示一个余额宝的例子,一个用户一天一条记录,表示一个用户一天的收益情况。其中,用户ID,日期是复合主键项目总体结构如下:下面依次贴出源代码pom.xml[html] view plain copy print?<project xmlns=“h转载 2017-08-11 16:15:11 · 733 阅读 · 0 评论