Hibernate
alinshen
这个作者很懒,什么都没留下…
展开
-
hibernate的对象三种状态说明
hibernate的对象三种状态 transient(瞬时) persistent(持久化) detached(游离) 瞬时状态: 1.刚new出来一个对象obj,obj在内存孤立存在,obj是携带信息的载体,obj没有被保存到数据库中(换句话:obj没有被session进行持久化) 扩展知识: 没有变量引用该对象,它将被垃圾回收转载 2017-05-25 17:53:47 · 247 阅读 · 0 评论 -
什么是N+1查询?
在Session的缓存中存放的是相互关联的对象图。默认情况下,当hibernate从数据库中加载Customer对象时,会同时加载所有关联的Order对象。以Customer和Order类为例,假定ORDERS表的CUSTOMER_ID外键允许为null,图1列出了CUSTOMERS表和ORDERS表中的记录。 以下Session的find()方法用于到数据库中检索所有的Custome转载 2017-05-25 18:05:29 · 387 阅读 · 0 评论 -
Spring 接管 Hibernate 配置 延迟加载
两种方法: 1. 使用Spring提供的Open Session In View机制,它有两种配置方式OpenSessionInViewInterceptor和OpenSessionInViewFilter,功能相同,只是一个在web.xml配置,另一个在application.xml配置而已。 Open Session In View在request把session绑定到当前thread期间转载 2017-05-25 18:46:42 · 372 阅读 · 0 评论 -
优化Hibernate所鼓励的7大措施
优化Hibernate所鼓励的7大措施: 1.尽量使用many-to-one,避免使用单项one-to-many 2.灵活使用单向one-to-many 3.不用一对一,使用多对一代替一对一 4.配置对象缓存,不使用集合缓存 5.一对多使用Bag 多对一使用Set 6.继承使用显示多态 HQL:from object polymorphism="exlicit" 避免查处所有对象转载 2017-06-20 15:01:13 · 309 阅读 · 0 评论 -
hibernate延迟加载(get和load的区别)
在hibernate中我们知道如果要从数据库中得到一个对象,通常有两种方式,一种是通过session.get()方法,另一种就是通过session.load()方法,然后其实这两种方法在获得一个实体对象时是有区别的,在查询性能上两者是不同的。 一.load加载方式 当使用load方法来得到一个对象时,此时hibernate会使用延迟加载的机制来加载这个对象,即:当我们使用session.loa转载 2017-07-02 07:27:10 · 252 阅读 · 0 评论