摘要:
事务的实现方式实现方式共有两种:编码方式;声明式事务管理方式。基于AOP技术实现的声明式事务管理,实质就是:在方法执行前后进行拦截,然后在目标方法开始之前创建并加入事务,执行完目标方法后根据执行情况提交或回滚事务。声明式事务管理又有两种方式:基于XML配置文件的方式;另一个是在业务方法上进行@Tra... 阅读全文
摘要:
Session执行一些sql语句把内存中的对象的状态同步到数据库,这个过程被称为session清理.在默认情况下,Session会在下面的时间点清理缓存。1 当应用程序调用net.sf.hibernate.Transacation的commit()方法的时候,commit()方法先清理缓存,然后再向... 阅读全文
摘要:
Hibernate查询缓存一级缓存和二级缓存都只是存放实体对象的,如果查询实体对象的普通属性的数据,只能放到查询缓存里查询缓存还存放查询实体对象的id。查询缓存的生命周期不确定,当它关联的表发生修改,查询缓存的生命周期就结束。这里表的修改指的是通过hibernate修改,并不是通过数据库客户端软件登... 阅读全文
摘要:
Hibernate二级缓存二级缓存需要sessionFactory来管理,它是进初级的缓存,所有人都可以使用,它是共享的。 当Hibernate根据ID访问数据对象的时候,首先从Session一级缓存中查;查不到,如果配置了二级缓存,那么从二级缓存中查;查不到,再查询数据库,把结果按照ID放入到缓存... 阅读全文
摘要:
二级缓存的策略 当多个并发的事务同时访问持久化层的缓存中的相同数据时,会引起并发问题,必须采用必要的事务隔离措施。 在进程范围或集群范围的缓存,即第二级缓存,会出现并发问题。因此可以设定以下4种类型的并发访问策略,每一种策略对应一种事务隔离级别。● 只读缓存(read-only) 如果应用程序需要... 阅读全文
摘要:
hibernate提供的一级缓存 hibernate是一个线程对应一个session,一个线程可以看成一个用户。也就是说session级缓存(一级缓存)只能给一个线程用,别的线程用不了,一级缓存就是和线程绑定了。 hibernate一级缓存生命周期很短,和session生命周期一样,一级缓存也称... 阅读全文
摘要:
缓存和连接池的区别: 缓存和池都是放在内存里,实现是一样的,都是为了提高性能的。但有细微的差别 池是重量级的,里面的数据是一样的,比如一个池里放100个Connection连接对象,这个100个都是一样的。 缓存里的数据,每个都不一样。比如读取100条数据库记录放到缓存里,这100条记录都不一... 阅读全文
摘要:
一对多 和多对一 一般是看需求来确定的,很多时候都是设置成双向的 举个最最普通的离子 :一个班级里面有多个学生 多个学生属于一个班级 从学生表来看 就是多对一的关系 从班级表来看就是一对多的关系 需求上如果说是从学生表想看到班级 那么就设置成多对一的关系 如果想从班级看到学生 就设置成一对多的关系... 阅读全文