
hibernate
文章平均质量分 83
iteye_3312
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Hibernate关联关系配置(一对多、一对一和多对多)
第一种关联关系:一对多(多对一) "一对多"是最普遍的映射关系,简单来讲就如消费者与订单的关系。 一对多:从消费者角的度来说一个消费者可以有多个订单,即为一对多。 多对一:从订单的角度来说多个订单可以对应一个消费者,即为多对一。 一对多关系在hbm文件中的配置信息: 消费者(一方): <?xml version="1.0" encoding="utf-8"?>&...原创 2013-09-06 16:10:07 · 77 阅读 · 0 评论 -
EJB和HIBERNATE(转)
一段时间以来,EJB、Hibernate、Spring的恩怨情仇,是J2EE的热门话题。EJB VS Hibernate、EJB VS Spring这样的议题随处可在。这篇文章,笔者试图通过对技术发展史的回顾,对source的剖析、对比,深入挖掘这些技术出现的初衷、缺陷、走向。 我强调EJB、Hibernate、Spring的恩怨情仇,同时也必须说明,我一向反感你说我怎么侵入、你说我怎么依赖式的E...原创 2013-09-12 22:43:49 · 287 阅读 · 0 评论 -
Hibernate原理
1.Hibernate 的初始化.读取Hibernate 的配置信息-〉创建Session Factory1)创建Configeration类的实例。它的构造方法:将配置信息(Hibernate config.xml)读入到内存。一个Configeration 实例代表Hibernate 所有Java类到Sql数据库映射的集合。2)创建SessionFactory实例把Configerat...原创 2013-09-17 22:54:56 · 86 阅读 · 0 评论 -
Hibernate的clear(),flush(),evict()方法详解
1.Clear 方法 无论是Load 还是 Get 都会首先查找缓存(一级缓存) 如果没有,才会去数据库查找,调用Clear() 方法,可以强制清除Session缓存。 例: [c-sharp] view plaincopyprint? public void testClear(){ Session session =...原创 2013-09-17 22:55:18 · 154 阅读 · 0 评论 -
数据持久化技术-Hibernate
在Java技术中有许多方法可以对数据进行持久化,持久层也是Java应用程序中最重要的部分之一。本文在分析了3种持久层主流解决方案的基础上,介绍了O-R映射开源项目Hibernate,并介绍了在Web应用开发中怎样配置Hibernate的环境,并使用它建立一个应用。 数据持久层简介 J2EE的三层结构是指表示层(Presentation),业务逻辑层(Business Logic)以及基础架...原创 2013-09-18 21:48:11 · 287 阅读 · 0 评论 -
浅析Hibernate实现对象持久化
Hibernate有很多值得学习的地方,这里我们主要介绍Hibernate实现对象持久化,包括介绍cascade和inverse有什么区别等方面。 Hibernate作为一种Java对象持久化技术,在很多大型的多层体系构架中得到应用,比如在开发一套电子商务系统可以以J2EE作为体系构架,Structs作为java Web应用框架,以Hibernate实现对象持久化任务,以EJB或者普通的ja...原创 2013-09-18 22:38:39 · 132 阅读 · 0 评论 -
详解spring事务属性,事物的传播特性和隔离级别
Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要我们在与事务相关的方法中处理大量的try…catch…finally代码。 我们在使用Spring声明式事务时,有一个非常重要的概念就是事务属性。事务属性通常由事务的传播行为,事务的隔离级别,事务的超时值和事务只读标志组成。我们在进行事务划分时,需要进行事务定义...原创 2013-09-29 14:59:14 · 116 阅读 · 0 评论 -
Hibernate的fetch
hibernate抓取策略fetch详解一、hibernate抓取策略(单端代理的批量抓取fetch=select(默认)/join)测试用例:Student student = (Student)session.get(Student.class, 1);System.out.println(student.getName());System.out.println(student.getCl...原创 2014-07-30 16:11:18 · 130 阅读 · 0 评论 -
Hibernate之事务、隔离级别、悲观锁、乐观锁
事务需要保证原子性(Atomicity)、一致性(Consistence)、隔离性(Isolation behavior)、持续性(Durability),简称ACID。 原子性:一个事务内的操作要么全部成功,要么全部失败回滚。 一致性:事务内的数据,如果事务成功,则必须都是成功后的状态,如果失败,则必须都是最开始的状态,不能有的是成功后的状态,有的是开始的状态。 隔离性:在多个事务同时进...原创 2014-07-31 13:49:53 · 107 阅读 · 0 评论 -
JPA和Hibernate的关系
JPA Java Persistence API,是Java EE 5的标准ORM接口,也是ejb3规范的一部分。 Hibernate,当今很流行的ORM框架,是JPA的一个实现,但是其功能是JPA的超集。 JPA和Hibernate之间的关系,可以简单的理解为JPA是标准接口,Hibernate是实现。那么Hibernate是如何实现与JPA的这种关系的呢。Hibernate主要是通过三...原创 2013-09-12 22:09:26 · 122 阅读 · 0 评论 -
Hibernate4实战之Hibernate4注解零配置
@Entity,注册在类头上,将一个类声明为一个实体bean(即一个持久化POJO类) 。 @Table,注册在类头上,注解声明了该实体bean映射指定的表(table)。 @Id用来注册主属性,@GeneratedValue用来注册主属性的生成策略,@Column用来注册属性,@Version用来注册乐观锁,@Transient用来注册不是属性。 以上的@Id、@Generat...原创 2013-09-12 11:55:02 · 105 阅读 · 0 评论 -
hibernate inverse属性
inverse的含义说得玄乎点是控制翻转,说得普通就是关系的维护有谁来做。 因为在关系数据库里面table和table之间是通过外键维护关系的(1-1,1-n),对于1-n的情况, 很显然,外键由N的一方来维护比有1的一方来维护要好,这就是OOP中的has a的关系, 用hibernate进行数据存取的时候如果在集合属性里面不设置inverse=true,那么在保存n后, hibern...原创 2013-09-06 16:17:05 · 132 阅读 · 0 评论 -
hibernate缓存
我们经常用到查询功能,所以拿Query接口中的list()和iterator()方法讲解:也就是著名的“N+1”问题。 我们经常习惯于这样的查询语句: Query query=session.createQuery("from Students"); List<Students> students=query.list(); for(Iterator<Students...原创 2013-09-06 16:39:36 · 89 阅读 · 0 评论 -
hibernate get和load方法的区别
get和load方式是根据id取得一个记录下边详细说一下get和load的不同,因为有些时候为了对比也会把find加进来。 1.从返回结果上对比:load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常get方法检索不到的话会返回null 2.从检索执行机制上对比:get方法和find方法都是直接从数据库中检索而load方法的执行则比较复杂...原创 2013-09-09 10:38:08 · 121 阅读 · 0 评论 -
hibernate的各种保存方式的区别 (save,persist,update,saveOrUpdte,merge,flush,lock)等
hibernate的保存hibernate对于对象的保存提供了太多的方法,他们之间有很多不同,这里细说一下,以便区别:一、预备知识:在所有之前,说明一下,对于hibernate,它的对象有三种状态,transient、persistent、detached下边是常见的翻译办法:transient:瞬态或者自由态persistent:持久化状态detached:脱管状态或者游离态 游离...原创 2013-09-10 11:54:10 · 109 阅读 · 0 评论 -
hibernate session管理
在各种session 治理方案中, ThreadLocal 模式得到了大量使用。ThreadLocal 是java中一种较为非凡的线程绑定机制。通过ThreadLocal存取的数据,总是与当前线程相关,也就是说,JVM 为每个运行的线程,绑定了私有的本地实例存取空间,从而为多线程环境常出现的并发访问问题提供了一种隔离机制。首先,我们需要知道,SessionFactory负责创建Ses...原创 2013-09-11 10:27:00 · 170 阅读 · 0 评论 -
Hibernate中使用Threadlocal创建线程安全的Session
一、问题的提出 我们知道Session是由SessionFactory负责创建的,而SessionFactory的实现是线程安全的,多个并发的线程可以同时访问一 个SessionFactory并从中获取Session实例,而Session不是线程安全的。Session中包含了数 据库操作相关的状态信息,那么说如果多个线程同时使用一个Session实例进行CRUD,就很有可能导致数据存取的混...原创 2013-09-11 10:27:13 · 216 阅读 · 0 评论 -
hibernate中session的线程安全问题
Hibernate的基本特征是完成面向对象的程序设计语言到关系数据库的映射,在Hibernate中使用持久化对象PO(Persistent Object)完成持久化操作,对PO的操作必须在Session管理下才能同步到数据库, 但是这里的Session并非指HttpSession,可以理解为基于JDBC的Connnection,Session是 Hibernate运作的中心, 对象的生命周期、...原创 2013-09-11 10:27:34 · 270 阅读 · 0 评论 -
DAO和Service层
1,dao和service对应 一般DAO只操作一个POJO对象,因此一个DAO对应一个POJO对象。 Service层是为了处理包含多个POJO对象(即对多个表的数据操作)时,进行事务等管理。所以Service层(其接口的实现类)被注入一个或多个DAO对象,以完成有意义的数据操作。2, 两种构建业务层的模式探讨是否需要Service层 模式1是Service + DAO,即DAO...原创 2013-09-11 10:27:48 · 312 阅读 · 0 评论 -
hibernate一二级缓存
Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存可以进行配置和更改,并且可以动态加载和卸载。 Hibernate还为查询结果提供了一个查询缓存,它依赖于第二级缓存。一....原创 2014-08-21 01:24:53 · 113 阅读 · 0 评论