随笔分类 - hibernate学习笔记
摘要:在本篇随笔里将会分析一下hibernate的缓存机制,包括一级缓存(session级别)、二级缓存(sessionFactory级别)以及查询缓存,当然还要讨论下我们的N+1的问题。随笔虽长,但我相信看完的朋友绝对能对hibernate的 N+1问题以及缓存有更深的了解。一、N+1问题首先我们来探讨...
阅读全文
摘要:官方文档 : http://www.mchange.com/projects/c3p0/index.html 3301000falseTestfalse100nullfalse60360151003rootpasswordselect id from test where id=1300false...
阅读全文
摘要:转自:http://blog.csdn.net/wangfayinn/article/details/24623575c3p0数据库连接池mysql8小时目录(?)[-]基本问题解决项目环境错误描述报错日志原因分析解决方案解决这个问题的办法有三种推荐第二种增加 MySQL 的 wait_timeou...
阅读全文
摘要:get和load方式是根据id取得一个记录 下边详细说一下get和load的不同,因为有些时候为了对比也会把find加进来。1.从返回结果上对比: load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常 get方法检索不到的话会返回null2.从...
阅读全文
摘要:hibernate提供的一级缓存hibernate是一个线程对应一个session,一个线程可以看成一个用户。也就是说session级缓存(一级缓存)只能给一个线程用,别的线程用不了,一级缓存就是和线程绑定了。hibernate一级缓存生命周期很短,和session生命周期一样,一级缓存也称sess...
阅读全文
摘要:1.返回List,.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);将结果转为Map,存放到list中,即list中为若干map对象;获取可按此方法:for(inti=0;ipublicListgetDamTestType(Integer...
阅读全文
摘要:第一篇:官方文档的处理方法,摘自官方 在迁移原先用JDBC/SQL实现的系统,难免需要采用hibernat native sql支持。1.使用SQLQueryhibernate对原生SQL查询执行的控制是通过SQLQuery接口进行的.Session.createSQLQuery();1.1标量查询...
阅读全文
摘要:实例A引用实例B,B如果是代理的话(比如多对一关联中):如果遍历A的查询结果集(假设有10条记录),在遍历A的时候,访问B变量,将会导致n次查询语句的发出!这个时候,如果在B一端的class上配置batch-size,hibernate将会减少SQL语句的数量。 Hibernate可以充分有效的使用...
阅读全文
摘要:一级缓存 二级缓存 查询缓存 缓存是为了提高性能 变化不是很大,相对静态的对象放入缓存 对象的创建比较耗时028--01 hibernate一级缓存一级缓存很短和session的生命周期一致,因此也叫session级缓存或事务级缓存 hibernate一级缓存那些方法支持一级缓存: * get()...
阅读全文
摘要:概述:数据查询与检索是Hibernate中的一个亮点,相对其他ORM实现而言,Hibernate提供了灵活多样的查询机制。标准化对象查询(Criteria Query):以对象的方式进行查询,将查询语句封闭为对象操作。优点:可主动性好,符合Java程序员的编码习惯。缺点:不够成熟,不支持投影(pro...
阅读全文
摘要:树形结构:也就是目录结构,有父目录、子目录、文件等信息,而在程序中树形结构只是称为节点。 一棵树有一个根节点,而根节点也有一个或多个子节点,而一个子节点有且仅有一个父节点(当前除根节点外),而且也存在一个或多个子节点。 也就是说树形结构,重点就是节点,也就是我们需要关心的节点对象。 节点:一个节点有...
阅读全文
摘要:Hibernate谈到悲观锁、乐观锁,就要谈到数据库的并发问题,数据库的隔离级别越高它的并发性就越差 并发性:当前系统进行了序列化后,当前读取数据后,别人查询不了,看不了。称为并发性不好 数据库隔离级别:见前面章级025-1悲观锁:悲观锁:具有排他性(我锁住当前数据后,别人看到不此数据)悲观锁一般由...
阅读全文
摘要:其它映射包括如下:Set:标签映射n 并非一对多,多对一关联映射,此处的set中为普通数据类型,不是对象(如果是对象则是一对多,多对一)n Hibernate会使用一个单表来存储set元素,并加入一个外键参照主表记录,无序List:标签映射n Hibernate会使用一个单表来存储list元素,并加...
阅读全文
摘要:复合主键(联合主键):多个字段构成唯一性。 实例场景:核算期间// 核算期间public class FiscalYearPeriod { private int fiscalYear; //核算年 private int fiscalPeriod; //核算月 pri...
阅读全文
摘要:Component关联映射:目前有两个类如下:值对象没有标识,而实体对象具有标识,值对象属于某一个实体,使用它重复使用率提升,而且更清析。以上关系的映射称为component(组件)关联映射在hibernate中,component是某个实体的逻辑组成部分,它与实体的根本区别是没有oid,compo...
阅读全文
摘要:、单端关联上,可以取值:false/proxy/noproxy(false/代理/不代理)实例一:所有lazy属性默认(支持懒加载) session = HibernateUtils.getSession(); tx = session.beginTransaction(); //不发出SQL语句,...
阅读全文
摘要:、集合上,可以取值:true/false/extra,(默认值为:true)实例一:(集合上的lazy=true(默认))class默认lazy=true(默认)session = HibernateUtils.getSession(); tx = session.beginT...
阅读全文
摘要:Lazy(懒加载):只有在正真使用该对象时,才会创建这个对象Hibernate中的lazy(懒加载):只有我们在正真使用时,它才会发出SQL语句,给我们去查询,如果不使用对象则不会发SQL语句进行查询。Hibernate中lazy(懒加载)的实现: 采用了第三方组件的库,这个库叫cglib.jar(...
阅读全文
摘要:多对多关联映射 双向 两方都持有对象引用,修改对象模型,但数据的存储没有变化。 再修改映射文件:public class Role { private int id; private String name;private Set users;//users对象的集合 publi...
阅读全文
摘要:一般的设计中,多对多关联映射,需要一个中间表Hibernate会自动生成中间表Hibernate使用many-to-many标签来表示多对多的关联多对多的关联映射,在实体类中,跟一对多一样,也是用集合来表示的。实例场景:用户与他的角色(一个用户拥有多个角色,一个角色还可以属于多个用户)Role实体类...
阅读全文