![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JPA
猫不在
这个作者很懒,什么都没留下…
展开
-
JPA的一些API
PersistencePersistence 类是用于获取 EntityManagerFactory 实例。该类包含一个名为 createEntityManagerFactory 的 静态方法 。createEntityManagerFactory 方法有如下两个重载版本。 带有一个参数的方法以 JPA 配置文件 persistence.xml 中的持久化单元名为参数带有两个参数的方法:前原创 2017-12-19 13:53:13 · 261 阅读 · 0 评论 -
JPA的一些注解
@Entity@Entity 标注用于实体类声明语句之前,指出该Java 类为实体类,将映射到指定的数据库表。如声明一个实体类 Customer,它将映射到数据库中的 customer 表上。@Table当实体类与其映射的数据库表名不同名时需要使用 @Table 标注说明,该标注与 @Entity 标注并列使用,置于实体类声明语句之前,可写于单独语句行,也可与声明语句同行。@Table 标注的常原创 2017-12-19 12:45:19 · 239 阅读 · 0 评论 -
JPA使用步骤
步骤创建 persistence.xml, 在这个文件中配置持久化单元需要指定跟哪个数据库进行交互;需要指定 JPA 使用哪个持久化的框架以及配置该框架的基本属性创建实体类, 使用 annotation 来描述实体类跟数据库表之间的映射关系.使用 JPA API 完成数据增加、删除、修改和查询操作 创建 EntityManagerFactory (对应 Hibernate 中的 Sess原创 2017-12-19 11:20:33 · 566 阅读 · 1 评论 -
JPA概述
JPA是什么JPA和hibernate之间的关系JPA 是 hibernate 的一个抽象(就像JDBC和JDBC驱动的关系):JPA 是规范:JPA 本质上就是一种 ORM 规范,不是ORM 框架 —— 因为 JPA 并未提供 ORM 实现,它只是制订了一些规范,提供了一些编程的 API 接口,但具体实现则由 ORM 厂商提供实现Hibernate 是实现:Hibernate 除了作为 O原创 2017-12-19 11:11:31 · 198 阅读 · 0 评论 -
JPQL语言
JPQL语言,即 Java Persistence Query Language 的简称。JPQL 是一种和 SQL 非常类似的中间性和对象化查询语言,它最终会被编译成针对不同底层数据库的 SQL 查询,从而屏蔽不同数据库的差异。JPQL语言的语句可以是 select 语句、update 语句或delete语句,它们都通过 Query 接口封装执行javax.persistence.QueryQ原创 2017-12-23 22:26:14 · 589 阅读 · 0 评论 -
使用二级缓存
<shared-cache-mode>节点:若 JPA 实现支持二级缓存,该节点可以配置在当前的持久化单元中是否启用二级缓存,可配置如下值:ALL:所有的实体类都被缓存NONE:所有的实体类都不被缓存. ENABLE_SELECTIVE:标识 @Cacheable(true) 注解的实体类将被缓存DISABLE_SELECTIVE:缓存除标识 @Cacheable(false) 以外的所有实原创 2017-12-23 21:29:07 · 205 阅读 · 0 评论 -
多对多关系映射
个人总结需要用到@manytomany注解,然后在需要维护关系的一方,加上@joinTable注解。必须指定一个维护关系,否则会导致关系表id重复出现错误。@joinTable 有以下属性,joinColumns ,设定该实体类映射在关系表中的外键列名和参照列,inverseColumns ,设定和该实体类关联的实体,在关系表中的外键列名和参照列。name指定表名在不维护关系的一端,还需要设原创 2017-12-23 21:27:49 · 417 阅读 · 0 评论 -
一对一关系映射
个人总结两端都需要配置@onetoone,但需要映射外键维护关系的一端,额外添加 @joinColumn 属性。含有外键的一端需要添加unique属性,没有外键的就设置mappedBy,自己不维护关系。含有主键的一方默认是立即加载机制,但可以通过fetch 属性调整,但是没有主键的一端,无论如何更改fetch,都是立即加载,会额外发送一条查询语句。原因是,含有外键的一方可以根据外键判断是否为原创 2017-12-23 19:57:00 · 429 阅读 · 0 评论 -
JPA一对多关系
个人总结关系字段上加注解 @onetomany或者@manytoone。如果是n-1,那么默认fetch=eager,采用立即查询如果是1-n,默认是延迟加载策略,都可以通过改变fetch属性来改变。单向1-n时,无论如何插入都会多出来两条update语句,因为这时关联关系是由1的一端维护,而外键列在n的一端,需要执行update语句,插入1这一端的id。joinColum 来映射相应的外原创 2017-12-23 18:03:08 · 1393 阅读 · 0 评论 -
EntityTransaction
与hibernate的不同之处,需要先创建,然后再开启,而hibernate直接开启。 //创建事务 entityTransaction=entityManager.getTransaction(); //开启事务 entityTransaction.begin();EntityTransaction 接口用来管理资源层实体管理器的事务操作。通原创 2017-12-23 15:31:25 · 684 阅读 · 0 评论 -
JPA用TABLE生成主键
@TableGenerator(name="generatorS",valueColumnName="gen_value",pkColumnName="gen_colu",initialValue=0, allocationSize=10,pkColumnValue="pk_student",table="generateId")@Column(name="id")@Generated原创 2017-12-19 12:52:44 · 481 阅读 · 0 评论