CODE男孩的博客

你只是看起来很努力,,,,,

@GeneratedValue 与 @GenericGenerator

一、JPA通用策略生成器  通过annotation来映射hibernate实体的,基于annotation的hibernate主键标识为@Id,  其生成规则由@GeneratedValue设定的.这里的@id和@GeneratedValue都是JPA的标准用法,  JPA提供四种标准用法,由@...

2016-08-05 12:31:43

阅读数 316

评论数 0

JPA学习笔记(16)——JPA高级

1.JPA的实体生命周期: JPA的实体有以下4中生命周期状态: (1).New:瞬时对象,尚未有id,还未和Persistence Context建立关联的对象。 (2).Managed:持久化受管对象,有id值,已经和Persistence Context建立了关联的对象。 (3).Datac...

2016-07-13 08:14:10

阅读数 2178

评论数 0

JPA学习笔记(15)——关联查询

left outer join String jpql = "FROM User u WHERE u.id = ?"; Query query = entityManager.createQuery(jpql); query.setParameter(1, 1);//第一个参...

2016-07-12 16:27:32

阅读数 432

评论数 0

JPA学习笔记(14)——查询缓存

使用hibernate的查询缓存 执行以下代码: String jpql = "FROM User u WHERE u.id = ?"; Query query = entityManager.createQuery(jpql); query.setParameter(1, ...

2016-07-12 16:26:50

阅读数 937

评论数 0

JPA学习笔记(13)——JPQL

Query接口 int executeUpdate() 用于执行update或delete语句。 List getResultList() 用于执行select语句并返回结果集实体列表。 Object getSingleResult() 3用于执行只返回单个结果实体的select语句。...

2016-07-12 16:26:08

阅读数 1956

评论数 0

JPA学习笔记(12)——使用二级缓存

一级缓存 查询两次id为1的user User user1 = entityManager.find(User.class, 1); User user2 = entityManager.find(User.class, 1);12 结果发现只调用了一次sql查询,因为使用了一级缓存 如...

2016-07-12 16:24:50

阅读数 550

评论数 0

JPA学习笔记(11)——映射双向多对多关联关系

多对多关联 比如现在有两个实体类:1. Product(商品)2. Category(类别) 一个商品可以有多个类别,一个类别也可以有多个商品,这就形成了多对多的关系 Product package com.jpa.helloworld2; import java.util.List; ...

2016-07-12 16:23:53

阅读数 498

评论数 0

JPA学习笔记(10)——映射双向一对一关联关系

双向一对一关联关系 一个部门有一个经理,一个经理管一个部门 Department实体类 package com.jpa.helloworld2; import javax.persistence.Column; import javax.persistence.Entity; import ...

2016-07-12 16:22:33

阅读数 615

评论数 0

JPA学习笔记(9)——映射双向一对多关联关系

双向一对多关联关系 前面的博客讲的都是单向的,而本问讲的是双向的(双向一对多 = 双向多对一) 什么是双向? 我们来对比一下单向和双向 单向/双向 User实体类中是否有List orders Order实体类中是否有User user 单向多对一 无 有 单...

2016-07-12 16:21:49

阅读数 643

评论数 0

JPA学习笔记(8)——映射一对多关联关系

一对多关联关系 本文有许多和多对一是一样的,因此不会写得很详细。有看不懂的,可以参考JPA学习笔记(7)——映射多对一关联关系 Order实体类 package com.jpa.helloworld2; import javax.persistence.Column; import java...

2016-07-12 16:19:41

阅读数 576

评论数 0

JPA学习笔记(7)——映射多对一关联关系

多对一关联关系 两个实体类,User和Order,一个User可以有多个Order,一个Order只能有一个User 建立关联关系 使用@ManyToOne注解映射多对一关联关系 User实体类 package com.jpa.helloworld; import javax.persi...

2016-07-12 16:18:33

阅读数 732

评论数 0

JPA学习笔记(6)——EntityTransaction

EntityTransaction EntityTransaction 接口用来管理资源层实体管理器的事务操作。通过调用实体管理器的getTransaction方法 获得其实例。 begin () 用于启动一个事务,此后的多个数据库操作将作为整体被提交或撤消。若这时事务已启动则会抛出 Ill...

2016-07-12 16:17:54

阅读数 713

评论数 0

JPA学习笔记(5)——EntityManager相关

PersistenceEntityManagerFactoryEntityManager find方法getReference方法persist方法remove方法merge方法 情况1传入的对象没有id情况2传入的对象有identityManager的缓存中没有该对象数据库中没有该记录情况3...

2016-07-12 16:17:08

阅读数 926

评论数 0

JPA学习笔记(4)——使用Table策略来生成主键

在上一篇博客中,提到一个注解@GeneratedValue,用于标注生成主键的策略,其中一种策略就是Table。 注意:这种方法不常用,只有遇到特殊业务需求时才会用到。 关于注解,请参考JPA学习笔记(3)——JPA注解 如何使用Table策略生成主键 使用这种策略,需要创建一张表 ...

2016-07-12 16:16:33

阅读数 569

评论数 0

JPA学习笔记(3)——JPA注解

EntityTableIdGeneratedValueBasicColumnTransientTemporal @Entity @Entity 标注用于实体类声明语句之前,指出该Java 类为实体类,将映射到指定的数据库表。 @Table 当实体类与其映射的数据库表名不同名时需要使用...

2016-07-12 16:15:02

阅读数 551

评论数 0

JPA学习笔记(2)——创建JPA项目

创建JPA项目 1. 新建java工程 其实也可以直接新建JPA工程,由于我这边创建JPA工程会有点问题,所以我创建java工程,效果是一样的。两者不同在于,JPA工程会帮我们创建jpa的配置文件,java工程则要我们手动创建 如果是直接创建JPA工程,version请选择2.0 2.创建...

2016-07-12 16:11:43

阅读数 682

评论数 0

JPA学习笔记(1)——什么是JPA

JDBC什么是JPAJPA与hibernate的关系JPA的供应商 JDBC jdbc是一组规范,是接口,由不同的数据库厂商各自提供相应的实现类,打包成jar包,也就是所谓的数据库驱动。而我们的java应用程序,只需要调用jdbc的接口就可以了。 而JPA是和jdbc类似的东西 什么...

2016-07-12 10:44:53

阅读数 692

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭