JPA
伊佐奈美須八尾
这个作者很懒,什么都没留下…
展开
-
JPA----概述----01
1.JPA:Java Persistence API java对象持久化的 API。Java EE 5.0 平台标准的 ORM 规范,使得应用程序以统一的方式访问持久层。2. JPA和hibernate的关系:JAP是一组规范,hibernate是JAP的一个实现。 -JPA 是 hibernate 的一个抽象(就像JDBC和JDBC驱动的关系) -JPA 是规范:JP...原创 2019-05-22 09:17:53 · 470 阅读 · 0 评论 -
JPA----映射双向一对多的关联关系----12
1.双向一对多关系中,必须存在一个关系维护端,在 JPA 规范中,要求 many 的一方作为关系的维护端(owner side), one 的一方作为被维护端(inverse side)。2. 可以在 one 方指定 @OneToMany 注释并设置 mappedBy 属性,以指定它是这一关联中的被维护端,many 为维护端。/** * 映射一对多的关联关系 * @OneT...原创 2019-05-24 09:36:47 · 158 阅读 · 0 评论 -
JPA----映射单向一对多的关联关系----11
通过在Customer类中添加set集合。也就是有一的一方来维护关联关系。使用注解@OneToMany,然后在Order类中不用再添加外键,但是结果生成的数据表和单向多对一的表结构是相同的,在Customer表中没有多余的列,但是在Order表中添加了外键列,区别就在于这个外键列的增删改查的维护是由一的一方来维护的。Customer.java@Table(name="JPA_C...原创 2019-05-23 15:29:52 · 186 阅读 · 0 评论 -
JPA----映射单向多对一的关联关系----10
举例:Customer和Order之间。多个Order对应一个Customer就可以理解为单向多对一的关联关系。order.java (JAP中通过直接省去了对应的映射数据表的配置文件,使用@Entity @Table注解代替)@Table(name="JPA_ORDER")@Entitypublic class Order { private Integer id; priv...原创 2019-05-23 15:00:32 · 178 阅读 · 0 评论 -
JPA----EntityManager的flush()方法和refresh ()方法----09
1 .flush ():同步持久上下文环境,即将持久上下文环境的所有未保存实体的状态信息保存到数据库中。2.refresh (Object entity):用数据库实体记录的值更新实体对象的状态,即更新实例的属性值。3.clear ():清除持久上下文环境,断开所有关联的实体。如果这时还有未提交的更新则会被撤消。4.contains (Object entity):判断一个实例是否属于...原创 2019-05-23 10:49:40 · 16575 阅读 · 0 评论 -
JPA----EntityManager的merge()方法----08
merge (T entity):merge() 用于处理 Entity 的同步。即数据库的插入和更新操作。 /** * 类似于hibernate的saveOrUpdatef方法。 * Merge1:若传入的是一个临时对象,会创建一个新的对象,把临时对象的属性赋值 * 到新对象中,然后对新对象执行持久化操作,所以新对象有id * 临时...原创 2019-05-23 10:39:27 · 6281 阅读 · 1 评论 -
JPA----EntityManager的核心方法----07
EntityManager :在 JPA 规范中, EntityManager 是完成持久化操作的核心对象。实体作为普通 Java 对象,只有在调用 EntityManager 将其持久化后才会变成持久化对象。EntityManager 对象在一组实体类与底层数据源 之间进行 O...原创 2019-05-23 09:51:40 · 257 阅读 · 0 评论 -
JPA----Persistence(持久化)&& EntityManagerFactory----06
1.Persistence 类是用于获取 EntityManagerFactory 实例。该类包含一个名为 createEntityManagerFactory 的 静态方法2.createEntityManagerFactory 方法有如下两个重载版本 2.1 –带有一个参数的方法以 JPA 配置文件 persistence.xml 中的持久化单元名为参数 2.2 –带有两...原创 2019-05-22 15:20:13 · 677 阅读 · 0 评论 -
JPA----@Temporal注解----05
@Temporal注解在核心的 Java API 中并没有定义 Date 类型的精度。而在数据库中,表示 Date 类型的数据有 DATE, TIME, 和 TIMESTAMP 三种精度在进行属性映射时可使用@Temporal注解来调整精度....原创 2019-05-22 14:27:23 · 197 阅读 · 0 评论 -
JPA----@Transient----04
@Transient注解1. 表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.2. 如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic即如果在实体类里面定义的如下get开头的方法,而它又不是需要映射到数据表的属性,就必须添加@Transient注解,否则默认添加@Basic注解,在创建数据表是会...原创 2019-05-22 11:53:49 · 156 阅读 · 0 评论 -
JPA----JPA基本注解----03
1. @Entity注解 指出该Java 类为实体类,将映射到指定的数据库表。 注意:根据数据库的不同,如果只是在一个Java类上添加了@Entity注解,也可以在数据空中生成数据表,但是是 根据Java类的名字来生成,所以必须用到下一个注解@Table2. @Table注解 当实体类与其映射的数据库表名不同名时需要使...原创 2019-05-22 11:45:01 · 172 阅读 · 0 评论 -
JPA----helloworld----02
使用JPA持久化对象的步骤。1.创建 persistence.xml, 在这个文件中配置持久化单元 –需要指定跟哪个数据库进行交互; –需要指定 JPA 使用哪个持久化的框架以及配置该框架的基本属性 JPA 规范要求在类路径的 META-INF 目录下放置persistence.xml,文件的名称是固定的<?xml version="1.0" e...原创 2019-05-22 11:18:26 · 99 阅读 · 0 评论 -
JPA----映射基于外键双向一对一的关联关系----13
1.在双向的一对一关联中,需要在关系被维护端(inverse side)中的 @OneToOne 注释中指定 mappedBy, 以指定是这一关联中的被维护端。同时需要在关系维护端(owner side)建立外键列指向关系被维护端的主键列。 被维护 /** * 对于不维护关联关系, 没有外键的一方, 使用 @OneToOne 来进行映射, * 建议设置 mappe...原创 2019-05-24 10:11:27 · 158 阅读 · 0 评论