
Hibernate
wlh269
这个作者很懒,什么都没留下…
展开
-
hibernate查询缓存
hibernate查询缓存 查询缓存是缓存普通属性结果集的 对实体对象的结果集只缓存id 查询缓存的生命周期,当关联的表发生修改,那么查询缓存的生命周期结束 查询缓存的配置和使用: * 在配置文件hibernate.cfg.xml中启用查询缓存,如: true * 在程序中必须手动启用查询缓存,如: query.setCachable(t...2009-03-02 11:17:13 · 95 阅读 · 0 评论 -
HQL (七) 分页查询
分页查询(重要) * setFirstResult(),数据的起始位置,从0开始 * setMaxResults, 每页显示多少条数据 参见:PageQueryTest.java[code="java"]package com.bjsxt.hibernate;import java.util.Iterator;import java.util.List;...2009-02-02 13:05:54 · 73 阅读 · 0 评论 -
HQL (八) 对象导航查询
对象导航查询,在hql中采用.进行导航(重要) 参见:ObjectNavQueryTest.java[code="java"]package com.wlh.hibernate;import java.util.Iterator;import java.util.List;import org.hibernate.Session;import junit...2009-02-02 13:17:47 · 90 阅读 · 0 评论 -
HQL (九) 连接查询
连接查询(重要) * 内连接 * 外连接(左连接/右连接) 参见:JoinQueryTest.java[b][color=red]内连接有三种:inner join ,join,“=”[/color][/b][code="java"]package com.wlh.hibernate;import java.util.Iterator;import ja...2009-02-02 18:25:09 · 80 阅读 · 0 评论 -
HQL (十) 统计查询
统计查询(重要) 参见:StatQueryTest.java[code="java"]package com.wlh.hibernate;import java.util.Iterator;import java.util.List;import org.hibernate.Session;import junit.framework.TestCase;...2009-02-02 18:28:07 · 80 阅读 · 0 评论 -
Hibernate二级缓存的使用
[color=red]1.加入ehcase.xml文件;2.在配置文件中加入如下代码:[/color] true org.hibernate.cache.EhCacheProvider zh[code="java"]package com.bjsxt.hibernate;import org.hibernate.CacheMode;impo...2009-02-17 12:22:36 · 67 阅读 · 0 评论 -
Hibernate抓取策略
[b]hibernate抓取策略(单端代理的批量抓取)[/b]保持中的fetch属性默认,也即是fetch="select"fetch="select",会另外发送一条sql语句加载当前对象的关联实体[b]hibernate抓取策略(单端代理的批量抓取)[/b]设置中的fetch="join"fetch="join",hibernate会使用一个外连接该对象的关联实体会...2009-02-17 12:37:14 · 78 阅读 · 0 评论 -
HQL (六) 查询过滤器
查询过滤器 设置了查询过滤器,并在程序中打开了过滤器,则在同一个session中,将在所有的查询语句后面都会加上预定好的查询条件, * 在映射文件中定义过滤器的参数 * 在类的映射文件中使用过滤器参数映射文件student.hbm.xml [color=red] [/...2009-02-02 12:22:45 · 82 阅读 · 0 评论 -
HQL (五) 外置命名查询(sql语句单独保存起来)
外置命名查询 * 在要查询对象对应的映射文件(这里是student.hbm.xml)中采用标签来定义hql [b] [/b]* 在程序中使用session.getNamedQuery()来得到hql查询串 参见:NameQueryTest.java[code="java"]package com.wlh.hibernate;import jav...2009-02-02 12:04:50 · 69 阅读 · 0 评论 -
HQL (四) 原生sql查询
hibernate也支持直接sql进行查询 参见:SqlQueryTest.java[code="java"]package com.bjsxt.hibernate;import java.util.Iterator;import java.util.List;import org.hibernate.Session;import junit.framewo...原创 2009-02-02 11:27:50 · 78 阅读 · 0 评论 -
Hibernate性能调优(重点理解)
一。 inverse = ? inverse=false(default) 用于单向one-to-many关联 parent.getChildren().add(child) // insert child parent.get...原创 2009-03-02 12:48:31 · 70 阅读 · 0 评论 -
get方法和load方法区别
[size=medium]hibernate中get方法和load方法的根本区别在于:如果你使用load方法,hibernate认为该id对应的对象(数据库记录)在数据库中是一定存在的,所以它可以放心的使用,它可以放心的使用代理来延迟加载该对象。在用到对象中的其他属性数据时才查询数据库,但是万一数据库中不存在该记录,那没办法,只能抛异常,所说的load方法抛异常是指在使用该对象的数据时,数据库中不...原创 2009-04-03 18:38:05 · 75 阅读 · 0 评论 -
关于hibernate缓存的问题
[size=medium]1. 关于hibernate缓存的问题:1.1.1. 基本的缓存原理Hibernate缓存分为二级,第一级存放于session中称为一级缓存,默认带有且不能卸载。 第二级是由sessionFactory控制的进程级缓存。是全局共享的缓存,凡是会调用二级缓存的查询方法 都会从中受益。只有经正确的配置后二级缓存才会发挥作用。同时...原创 2009-04-10 18:12:05 · 72 阅读 · 0 评论 -
什么样的数据适合存放到第二级缓存中
(一)Hibernate的二级缓存策略的一般过程如下: 1) 条件查询的时候,总是发出一条select * from table_name where …. (选择所有字段)这样的SQL语句查询数据库,一次获得所有的数据对象。 2) 把获得的所有数据对象根据ID放入到第二级缓存中。 3) 当Hibernate根据ID访问数据对象的时候,首先从Session一级缓存中查;查不到,如果配置...原创 2009-04-11 17:15:19 · 110 阅读 · 0 评论 -
HQL (二) 实体对象查询
实体对象查询(重要) * N+1问题,在默认情况下使用query.iterate查询,有可能出现N+1问题,所谓的N+1 是查询对象的时候发出了N+1条sql语句 1:首先发出一条查询id列表的sql N:根据id列表发出n条查询语句 * list和iterate的区别? * list在默认情况下,只向缓存中放入数据,而不利用缓存中...2009-02-02 11:05:55 · 76 阅读 · 0 评论 -
HQL (三) 条件查询
条件查询(重要) * 可以采用拼字符串的方式传递参数 * 可以采用 ?号的方式传递参数 * 可以采用 :参数名的方式传递参数 * 如果传递多个参数,使用setParameterList来传递 * 在hql中可以使用数据库的函数,如:date_format * 参见:SimpleConditionQueryTest.java[color=red]"like" 和 "=...原创 2009-02-02 11:13:01 · 71 阅读 · 0 评论