Hibernate
文章平均质量分 60
月光下的平方
求知若饥,虚心若愚。
展开
-
Hibernate事务与并发问题处理(乐观锁与悲观锁)
目录 一、数据库事务的定义 二、数据库事务并发可能带来的问题 三、数据库事务隔离级别 四、使用Hibernate设置数据库隔离级别 五、使用悲观锁解决事务并发问题 六、使用乐观锁解决事务并发问题 Hibernate事务与并发问题处理(乐观锁与悲观锁) 一、数据库事务的定义 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的转载 2017-06-18 02:40:21 · 439 阅读 · 0 评论 -
Hibernate双向多对一映射
有两个类,一个Student类和一个Grade类。public class Student { private int stuId; private String stuName; private int age; //多对一 private Grade grade; .......省略 }public class Grade { private原创 2017-06-09 17:19:10 · 306 阅读 · 0 评论 -
Hibernate双向多对一(注解)
首先由两个类Student和Grade。package cn.wong.pojo;import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import原创 2017-06-10 10:55:26 · 325 阅读 · 0 评论 -
Hibernate一对一双向映射 注解方式
此处只讨论基于外键的双向一对一。有外键的一方//一对一关系 @OneToOne(cascade=CascadeType.ALL) @JoinColumn(name="id_card",nullable=false) private IdCard idCard;无外键一方//一对一关系 @OneToOne(mappedBy="idCard",cascade=CascadeType.ALL) priva原创 2017-06-10 11:12:21 · 305 阅读 · 0 评论 -
Hibernate双向多对多 注解方式
Function类//多对多关系 @ManyToMany(mappedBy="functions",cascade=CascadeType.ALL) private Set<Role> roles = new HashSet<Role>();Role类//多对多关系 @ManyToMany(cascade=CascadeType.ALL) @JoinTable( name="原创 2017-06-10 11:31:03 · 325 阅读 · 0 评论 -
Hibernate的hql查询语句详细总结
Hql即Hibernate Query Language,是一个面向对象的查询语言,是基于对象进行查询的,不是基于数据库中表,字段的。 1、准备首先有两个类TBook类和Category类,两者之间是多对一的关系。两个类对应两张表,我们先保存一些数据。@Test public void save() { Session session = null; Transaction tra原创 2017-06-10 15:56:06 · 1891 阅读 · 0 评论 -
Hibernate中的Fetch(数据抓取)
Hibernate抓取策略(fetch) 一、单端关联上的fetch[取值:select(默认)/join] 测试用例: TBook b = (TBook)session.get(TBook.class,1); System.out.println("图书名称:"+b.getBName()); System.out.println("图书类别:"+b.getCategory().g原创 2017-06-13 19:40:55 · 534 阅读 · 0 评论 -
Hibernate的懒加载详解
hibernate的懒加载是利用动态代理来实现的;我们知道动态代理有JDK的动态代理(JDK动态代理所代理的对象必须要实现一个接口)和CGLIB的动态代理,Hibernate的懒加载采用的是CGLIB的动态代理,CGLIB的动态代理可以生成目标类的子类,这也就是为什么创建对象关系映射的时候要求实体类不能够为final类型的原因了。原创 2017-06-12 20:37:03 · 641 阅读 · 0 评论 -
Hibernate一级缓存
一、一级缓存一级缓存也称为session缓存,默认总是开启的,生命周期与session相同,使用一级缓存可以减少与数据库的交互,提高数据库访问性能;一级缓存只能作用于当前session,其他的session无法使用。二、原理一级缓存采用的是Key-Value的MAP方式来实现的。在缓存实体对象时,对象的主关键字ID是MAP的Key,实体对象就是对象的值。所以说一级缓存是以实体对象为单位进行存储的。访原创 2017-06-15 16:22:37 · 404 阅读 · 0 评论