- 浏览: 1504471 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (516)
- Java (49)
- Java/Struts 2.0 (25)
- Java/Spring、Spring MVC (11)
- Java/Quartz (3)
- Java/Lucene (6)
- Java/Hibernate (19)
- Java/openJPA (7)
- Java/DWR (7)
- Java/Security、Spring Security/OAuth2 (6)
- Java/Threading (9)
- Java/XML (22)
- java/design pattern (4)
- Android (2)
- JavaScript (46)
- jquery (3)
- DB/MySQL (23)
- DB/Oracle (16)
- PHP (25)
- CSS (20)
- Linux (38)
- C/C++、DLL、Makefile、VC++ (31)
- 正则 (9)
- Eclipse (4)
- 安全、网络等概念 (25)
- 集群 (7)
- 网页 (5)
- 视频\音频 (1)
- HTML (6)
- 计算机数学/算法 (3)
- Virtualbox (1)
- LDAP (2)
- 数据挖掘 (6)
- 工具破解 (1)
- 其他 (13)
- Mail (1)
- 药材 (3)
- 游戏 (2)
- hadoop (13)
- 压力测试 (3)
- 设计模式 (3)
- java/Swing (2)
- 缓存/Memcache (0)
- 缓存/Redis (1)
- OSGI (2)
- OSGI/Gemini (0)
- 文档写作 (0)
- java/Servlet (3)
- MQ/RabbitMQ (2)
- MQ/RocketMQ (0)
- MQ/Kafka (1)
- maven (0)
- SYS/linux (1)
- cache/redis (1)
- DB/Mongodb (2)
- nginx (1)
- postman (1)
- 操作系统/ubuntu (1)
- golang (1)
- dubbo (1)
- 技术管理岗位 (0)
- mybatis-plus (0)
最新评论
-
pgx89112:
大神,请赐我一份这个示例的项目代码吧,万分感谢,1530259 ...
spring的rabbitmq配置 -
string2020:
不使用增强器 怎么弄?
OpenJPA的增强器 -
孟江波:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!4 ...
spring的rabbitmq配置 -
eachgray:
...
spring-data-redis配置事务 -
qljoeli:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!1 ...
spring的rabbitmq配置
转自:http://blog.csdn.net/fhd001/article/details/6272438
hibernate之查询(设置查询提示)
----------
1.setFlushMode()
假设你在执行查询之前修改了持久化对象。这些修改只出现在内存中,因此hibernate在执行查询之前,把持久化上下文和所有的变化清除到数据库。这样保证了查询在当前的数据中运行,并保证在查询结果和内存之间不会出现冲突。
这有时候是不现实的,例如,如果你执行一系列包含许多个查询-修改-查询-修改的操作,并且每次查询都获取一个与以前不同的数据集。换句话说,不需要在执行查询之前把修改清除到数据库。
可以在session中,利用setFlushMode()禁用持久化上下文的清除。如例:
session.setFlushMode(FlushMode.COMMIT);
或者,如果你想要只在特定的查询之前禁用清除,可以在Query对象中设置一个FlushMode,如例:
Query q = session.createQuery(queryString).setFlushMode(FlushMode.COMMIT);
hibernate不会在执行这个查询之前清除持久化上下文。
2.setCacheMode()
这是对查询结果的一个细粒度的优化,控制hibernate如何与二级缓存交互。
如例:
session.setCacheMode(CacheMode.IGNORE); 或 Query q = session.createQuery("from Item").setCacheMode(CacheMode.IGNORE); 或 Criteria criteria = session.createCriteria(Item.class).setCacheMode(CacheMode.IGNORE);
上例,CacheMode.IGNORE告诉hibernate不要为这个查询返回的任何实体而与二级缓存交互。换句话说,通过这个查询获取到的任何Item都不放在二级缓存中,如果你执行一个不应该更新二级高速缓存的查询,设置这种高速缓存模式就很有用,或许因为你正在获取的数据只与特定的情况相关,因此不应该耗尽高速缓存区域中的可用空间。
3.setReadOnly()
给特定的持久化对象禁用脏查询的一种方法 是设置session.setReadOnly(object,true)。你可以告诉Hibernate:由查询返回的所有实体对象都应该被当作是只读的。如例:
Query q = session.createQuery("from Item").setReadOnly(true);
由这个查询返回的所有Item对象都处于持久化状态,但是在持久化上下文中,没有给自动脏检查启用任何快照。hibernate不会自动持久化任何修改,除非用session.setReadOnly(object,false)禁用只模式。
4.setTimeout()
设置超时(timeout),来控制允许一个查询运行多久,如例:
Query q = session.createQuery("from Item").setTimeout(60); //1 minute Criteria criteria = session.createCriteria(Item.class).setTimeout(60);
这种方法与JDBC Statement中的setQueryTimeout()方法有着相同的语义和结果。
5.setFetchSize()
设置抓取大小,如例:
Query q = session.createQuery("from Item").setFetchSize(50); Criteria criteria = session.createCriteria(Item.class).setFetchSize(50);
JDBC抓取大小是对数据库驱动程序的一个优化提示:如果驱动程序没有实现这个功能,它就不能导致任何性能改善。如果它实现了,当客户端在一个查询结果(即ResultSet)中操作时,通过在一个批量中获取许多个行,可以改善JDBC客户端和数据库之间的通信。由于Hibernate幕后正在使用ResultSet,如果用list()执行一个查询,这个提示就可以改善数据获取。
6.setLockMode()
可以控制查询是否应该在数据库管理系统中强制悲观锁---这是一直持续到数据库事务结束的锁。如例:
Query q = session.createQuery("from Item item").setLockMode("item",LockMode.UPGRADE); Criteria criteria = session.createCriteria(Item.class).setLockMode(LockMode.UPGRADE);
这两个查询,如果得到数据库方言的支持,都会生成一个包括...FOR UPDATE操作的SQL声明。
发表评论
-
Hibernate延迟加载(转)
2014-05-04 15:54 727转自:http://cenjun615.blog.1 ... -
hibernate使用@subselect映射数据库视图
2013-12-21 21:15 3320文档引用:http://software-develope ... -
Hibernate annotation 自定义类型 userType
2013-04-01 17:26 1612第一步:添加自定义类: package com.a.en ... -
c3p0配置
2013-03-11 15:44 950<!--注册数据源 --> <bea ... -
Hibernate的缓存策略(转)
2012-02-03 15:28 854Hibernate 的一级缓存 ... -
如何在spring配置多个Hibernate数据源链接(转)
2012-02-02 15:47 1166一、首先配置hibernate数据源: <?xm ... -
UserType 的 MapType,ListType
2011-12-07 14:42 1218import java.io.Serializable; i ... -
在Hibernate显式使用索引
2011-02-25 19:41 1301http://www.znetdevelopment.com/ ... -
Hibernate中多对多关系映射、保存、查询
2009-10-13 20:13 14172首先是一些基础模型类的建立: import java. ... -
Hibernate HQL 语法大全 查询技巧(2)
2009-09-25 19:10 175611.子查询 ... -
Hibernate HQL 语法大全 查询技巧(1)
2009-09-25 19:10 4910HQL: Hibernate查询语言 ... -
Join用法,HQL的方法,Hibernate中的fetch
2009-09-25 18:47 1725Join用法: 主要有Inner J ... -
xdoclet 2
2009-04-24 10:42 1437XDoclet 2 all XDoclet -&g ... -
hibernate 随机 查询
2009-04-03 21:36 2696/** * 随机取出N条记录 * * @p ... -
XDoclet - discriminator标签
2009-03-14 23:49 2355http://blog.csdn.net/chenjyuj/a ... -
Hibernate UserType 使用xdoclet映射数据库问题
2008-10-18 09:49 1113http://www.hibernate.org/282.ht ... -
Hibernate
2008-08-26 10:42 1094http://www.openfans.net/viewArt ... -
Hibernate 一对一
2008-08-26 10:14 1356//ClassA: import java.io.Seria ...
相关推荐
ExtJs4.2+Mysql+Struts2+Hibernate3实现分页查询 1.libs目录缺少hibernate核心jar包 2.libs目录缺少struts jar 3.WebRoot目录缺少ExtJs4.2核心类库 以上信息我都在项目里面注明了,因为这些内容的文件太大了,CSDN不...
NULL 博文链接:https://zgdkik.iteye.com/blog/1835786
由于spring3.x,基于asm的某些特征,而这些asm还没有用jdk8编译,所以采用Spring 3+JDK8就会报错,提示错误信息( java.lang.IllegalArgumentException),具体解决方案有:1、Spring 3+JDK7及以下版本 2、Spring 4+JDK8...
开始Hibernate之旅 1.2. 第一个可持久化类 1.3. 映射cat 1.4. 与猫同乐 1.5. 结语 2. 体系结构 2.1. 总览 2.2. JMX集成 2.3. JCA支持 3. SessionFactory配置 3.1. 可编程配置方式...
下面将介绍如何使用Hibernate Code Generation来产生数据库表映射Java对象,首先要在数据库中创建表,并设置号字段名和主键(主键很重要,关于主键的选择建议你使用与业务无关的ID作为主键);打开Hibernate视图找到...
基于Prototype + Spring + Hibernate实现的自动提示功能,代码只是简单的实例程序,希望对初学者有所帮助,呵呵。
为学习Hibernate的初学者提供一个更易入门的实例。
ajax+hibernate实现类似于google的输入提示功能..
Java的hibernate中xml自动提示dtd
hibernate-mapping-3.0.dtd 配置后,就会在xml中进行提示
开发Hibernate框架的绝对好帮手可以把导入的类也可以提示,是Hibernate开发的必不可少的开发利器
在MyEclipse中即使加入了Hibernate组件,也会找不到类(或包)的提示。这时只能是乖乖的把所提示的缺包一一补上咯
hibernate-configuration-3.0.dtd 文件,配置后 映射文件就会提示
这个是hibernate的插件,绝对适用于eclipse3.7,现在我就在用。想想在myclipse的自动提示,在eclipse通过这个插件也可以实现,绝对好用。
开始Hibernate之旅 1.2. 第一个可持久化类 1.3. 映射cat 1.4. 与猫同乐 1.5. 结语 2. 体系结构 2.1. 总览 2.2. JMX集成 2.3. JCA支持 3. SessionFactory配置 3.1. 可编程配置方式...
前几天搞 Spring + Hibernate + Struts 事务配置 ,网上找了好多资料,不过好无语,大多都是 Ctrl + V,浪费俺的宝贵时间 现在我总结配出一套,给大家参考参考,可能有不足,请大家多多交流。 附:内有弹出...
spring struts2 hibernate dtd文件,自动提示
是一个比较详细的使用笔记,从hiberant框架的搭建,到HQL查询语句的使用,到QBC的查询,有详细的案例,有注意的细节提示。
⑦、安装完成,可至后台添加或修改版面分类、版面,或是进行其它个性化设置。 ⑵、LeadBBS 6.0/6.1免费用户在线升级至6.2的方法(适用版本:LeadBBS 6.0/6.1免费版本): ①、将原论坛数据库文件夹及数据库文件、in...
此压缩包内有两文件,一个是hibernate的核心配置文件hibernate.cfg.xml,一个是实体映射文件*.hbm.xml,在配置hibernate文件时需要用到头部的约束,还有在配置没提示时需要用到(附带使用方法)。