随笔分类 -  hibernate

摘要:在了解Hibernate的LockMode之前,我们先讲一下LockMode是什么东西?其实LockMode只是在使用Hibernate 中 的session.load()加载数据时指定的模式,也叫悲观锁(模式),然而,悲观锁是为了弥补read-committed 机制的不足,从而解决non-repeatable (不可重复读)和 phantom-read (幻读)问题,而non-repeatable 和 phantom-read 这两个问题也只是事务并发是产生的两种问题... 看了我写的这一段后,我相信很多读者会有点懵,这就对了,看完下面的文章,再后过头来读这一段,就全都明白了。我们知道,事 阅读全文
posted @ 2013-05-08 08:59 jack_ou 阅读(966) 评论(0) 推荐(0) 编辑
摘要:session.evict(obj),会把指定的缓冲对象进行清除session.clear(),把缓冲区内的全部对象清除,但不包括操作中的对象所以,hibernate执行的顺序如下,(1)生成一个事务的对象,并标记当前的Session处于事务状态(注:此时并未启动数据库级事务)。 (2)应用使用s.save保存对象,这个时候Session将这个对象放入entityEntries,用来标记对象已经和当前的会话建立了关联,由于应用对对象做了保存的操作,Session还要在insertions中登记应用的这个插入行为(行为包括:对象引用、对象id、Session、持久化处理类)。(3)s.evict 阅读全文
posted @ 2013-05-08 08:51 jack_ou 阅读(429) 评论(0) 推荐(0) 编辑
摘要:find,iterator(1)iterator首先会获取符合条件的记录的id,再跟据id在本地缓存中查找数据,查找不到的再在数据库中查找,结果再存在缓存中。N+1条SQL。(2)find跟据生成的sql语句,直接访问数据库,查到的数据存在缓存中,一条sql。如果找不到符合条件的纪录,get()方法将返回null.如果找不到符合条件的纪录,find()方法将返回null.如果找不到符合条件的纪录,load()将会报出ObjectNotFoundEcception.get()方法会忽略二级缓存,若内部缓存没有查询到会到数据库中去查询 .find()方法会忽略二级缓存,若内部缓存没有查询到会到数据 阅读全文
posted @ 2013-05-08 08:43 jack_ou 阅读(410) 评论(0) 推荐(0) 编辑
摘要:hibernate的保存 hibernate对于对象的保存提供了太多的方法,他们之间有很多不同,这里细说一下,以便区别: 一、预备知识: 在所有之前,说明一下,对于hibernate,它的对象有三种状态,transient、persistent、detached 下边是常见的翻译办法: transient:瞬态或者自由态 persistent:持久化状态 detached:脱管状态或者游离态游离状态的实例可以通过调用save()、persist()或者saveOrUpdate()方法进行持久化。 持久化实例可以通过调用 delete()变成脱管状态。通过get()或load()方法得到的实例都 阅读全文
posted @ 2013-05-08 08:39 jack_ou 阅读(347) 评论(1) 推荐(1) 编辑
摘要:persist和save区别 这个是最迷离的一对,表面上看起来使用哪个都行,在hibernate reference文档中也没有明确的区分他们. 这里给出一个明确的区分。(可以跟进src看一下,虽然实现步骤类似,但是还是有细微的差别) 主要内容区别: 1,persist把一个瞬态的实例持久化,但是并"不保证"标识符(identifier主键对应的属性)被立刻填入到持久化实例中,标识符的填入可能被推迟到flush的时候。---不直接进数据库,多用于批量处理等2,save, 把一个瞬态的实例持久化标识符,及时的产生,它要返回标识符,所以它会立即执行Sql insert,---- 阅读全文
posted @ 2013-05-08 08:38 jack_ou 阅读(316) 评论(0) 推荐(0) 编辑
摘要:缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。目录简介缓存范围并发访问二级缓存编辑本段简介缓存的介质一般是内存,... 阅读全文
posted @ 2013-04-11 21:18 jack_ou 阅读(325) 评论(0) 推荐(0) 编辑