Hibernate_zd
我叫阿狸猫
这个作者很懒,什么都没留下…
展开
-
Hibernate对象的状态,session的clear()和evict()
public class PersonTest { private static SessionFactory sessionFactory = null; static{ Configuration configuration = new Configuration(); //加载配置文件,路径为classPath下的,名字为hibernate.cfg.xml"的文件 con原创 2013-09-25 10:40:15 · 1464 阅读 · 0 评论 -
Hibernate的一级缓存
1.Hibernate的一级缓存的生命周期就是session的生命周期。 2.一级缓存存放的数据都是私有数据,不共享的。(因为session是存放在threadloacl中,不同的线程是不能访问的,所以保证了数据的安全性) 3.session.save(),update(),load(),get()方法会将数据库的数据存放在session一级的缓存中。 4.session.get()和loa原创 2013-09-29 14:28:20 · 1032 阅读 · 0 评论 -
hibernate抓取策略
班级和学生是一对多关联: 班级表: 学生表: Student.hbm.xml <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.原创 2013-10-21 00:21:27 · 810 阅读 · 0 评论 -
Hibernate之session,以及getCurrentSession用法和用处
在使用getCurrentSession()的常见错误: 1. 表示没在hibernate.cfg.xml配置文件中配置 thread 2. 表示没有开启事务,如果要使用getCurrentSession(),则必须要开启事务,session需要和事务绑定在一起 3. 表示session已经自动关闭了,我们又手动进行了session关闭操作 注意:利用原创 2013-09-28 16:43:54 · 3324 阅读 · 0 评论 -
hibernate二级缓存
二级缓存:存放公有数据 1、适用场合: 1、数据不能频繁更新 2、数据能公开,私密性不是很强 2、hibernate本身并没有提供二级缓存的解决方案 3、二级缓存的实现是依赖于第三方供应商完成的 ehcache oscache jbosscache swamc原创 2013-10-21 14:19:54 · 842 阅读 · 0 评论 -
hibernate懒加载
1、类的懒加载 1、利用session.load方法可以产生代理对象 2、在session.load方法执行的时候并不发出sql语句 3、在得到其一般属性的时候发出sql语句 4、只针对一般属性有效,针对标示符属性是无效的 例如Clazz c = (Clazz) session.get原创 2013-10-20 21:13:33 · 848 阅读 · 0 评论 -
Hibernate一对多单向关联,inverse和cascade的区别
总结: 1.cascade:当配置为savr-update的时候,在保存class的时候会级联保存student对象,但是student表中的外键是为null 2.inverse:当配置为false的时候(缺省是false),class会在级联保存student后,执行一句update语句,来改变student表的外键。 1.Student: public class Stud原创 2013-09-26 16:42:44 · 984 阅读 · 0 评论 -
Hibernate一对多双向关联,以及双向关联在操作many方或one方的区别
Student public class Student implements Serializable{ private Long sid; private String sname; private String description; private Class clzz; public Long getSid() { return sid; } publi原创 2013-09-27 17:26:08 · 913 阅读 · 0 评论 -
Hibernate多对多映射
结论:大多数情况下,操作哪一方级联保存性能都差不多,但是如果是将一个对象添加进多个对象中的时候,这时候在少的一端进行操作,性能会高点。具体看测试类第10个例子 Student public class Student implements Serializable{ private Long sid; private String sname; private S原创 2013-09-28 10:01:09 · 1335 阅读 · 0 评论 -
hibernate优化
1.当一对多关系的时候,由于在保存one方的时候级联保存many方,并且one方负责维护关联关系的话,那么sql的执行顺序是,先保存many方(此时many方的外键是没有值的),然后保存one方,最后将many方的外键改为保存的one的主键这样效率就低了。但是如果由many方来维护关联关系,那么就可以少执行那句update语句了。(首先保存one方,再保存many方,many方在保存自己的时候直接原创 2013-10-20 19:22:56 · 735 阅读 · 0 评论