
Hibernate
q77533005
这个作者很懒,什么都没留下…
展开
-
Hibernate优化查询性能
Hibernate从以下几个方面来优化查询性能:(1)降低访问数据库的频率,减少select语句的数目。实现手段包括: a.使用迫切做外连接或者迫切内连接检索策略。 b.对延迟检索或立即检索策略设置批量检索数目。 c.使用查询缓存。(2)避免多余加载程序不需要访问的数据。实现手段包括: a.使用延迟检索策略。 b.使用集合过滤。...原创 2009-09-14 09:46:06 · 100 阅读 · 0 评论 -
动态实例化查询结果
动态实例化查询结果摘自《精通Hibernate》一书[code="java"]package mypack;import java.io.Serializable;public class CustomerRow implements Serializable { private Long id; private String name; ...原创 2009-08-24 19:36:05 · 117 阅读 · 0 评论 -
显示地初始化Hibernate代理对象
显示地初始化Hibernate代理对象[code="java"]Person person = (Person)session.load(Person.class,1);if(!Hibernate.isInitialized(person)){ Hibernate.initialize(person);}session.close();person.getName();...2009-08-20 13:15:16 · 126 阅读 · 0 评论 -
QBC查询之字符串模式匹配
Criteria 字符串模式匹配1.通配符方式 "%" " _" Criteria criteria = session.createCriteria(Person.class).add(Restrictions.like("name", "q%")); 2.MatchMode方式MatchMode.STARTExpression.like("name","q&quo2009-08-19 09:38:55 · 155 阅读 · 0 评论 -
一个强人的书记
在看孙的《精通Hibernate》时想做笔记,无意找到了这个。很全。基本上跟原书差不多了。[size=large][url]http://aumy2008.blogbus.com/logs/13835265.html[/url][/size]原创 2009-08-19 09:01:56 · 116 阅读 · 0 评论 -
Hibernate在映射文件中定义命名查询语句
在映射文件中定义命名查询语句Hibernate允许在映射文件中定义字符串形式的查询语句,例如,可以再Customer.hbm.xml文件中定义如下HQL查询语句:[code="xml"] ... [/code]元素用于定义一个HQL查询语句,它和元素并列.以上HQL查询语句被命名为"findCustomersByName",在...2009-08-19 08:20:59 · 210 阅读 · 0 评论 -
Hibernate的参数绑定
参数绑定:都支持位置绑定和命名绑定,如:[code="java"]session.createQuery("from Person where id=:id").setInteger("id",1);session.createQuery("from Person where id=?").setInteger(0,1);[/code]基本的参数绑定:setString...2009-08-18 17:38:04 · 124 阅读 · 0 评论 -
Hibernate的客户化映射类型
以目前的理解来看,该技术用以解决POJO类字段类型与数据库不一致的情况。参照该篇帖子,写的不错。[size=large][url]http://www.iteye.com/topic/182797[/url][/size]...原创 2009-08-18 08:48:30 · 100 阅读 · 0 评论 -
Hibernate对象的三种状态
[size=large][url]http://blog.youkuaiyun.com/java05/archive/2008/11/08/3252083.aspx[/url][/size]该问题此博客写的很详细,图文并茂1, 临时状态(Transient):用new创建的对象,它没有持久化,没有处于Session中,处于此状态的对象叫临时对象;2, 持久化状态(Persisten...原创 2009-08-17 11:25:23 · 92 阅读 · 0 评论 -
Hibernate分页查询
1.HQL方式[code="java"]Query query = session.createQuery("from Customer");query.setFirstResult(0);//起始位置query.setMaxResults(10);//偏移数量List result = query.list();[/code]2.QBC方式[code="java"]C...2009-08-17 08:44:40 · 93 阅读 · 0 评论 -
Hibernate多态查询
多态查询[code="java"]Query query = session.createQuery("from java.lang.Object o");List list = query.list();Criteria criteria = session.createCriteria(Object.class);List list = criteria.list();[/...2009-08-14 17:00:48 · 111 阅读 · 0 评论 -
原生Hibernate Session的获得方法
突然发现自己连最原始的Hibernate获取Session的方法都忘了,特此贴上,以备忘hibernate.cfg.xml在src下时[code="java"]Configuration configuration = new Configuration(); SessionFactory sessionFactory = configuration.buildSession...2009-08-12 17:43:56 · 112 阅读 · 0 评论 -
HIbernate 的时间戳比较
原文[url]http://hi.baidu.com/mwm2007/blog/item/068271668924b226ab184cd0.html[/url]hibernate很大的一个特点就是屏蔽了数据库的差异,使用了hibernate就应该尽量HQL来操作数据库(除非不得不用数据库本身的一些特性),而对于时间类型的比较hibernate也是支持的。HQL: and a...原创 2009-06-25 21:28:47 · 492 阅读 · 0 评论 -
get 与 load
之前一直以为get和load的区别只是没有查到数据时,一个返回null一个抛出异常.昨天晚上看EJB视频的时候,里面有个方法(呃,EJB现在只是大体看看,没有细学),根据主键得到一个代理对象,然后将这个对象删除.而EJB的ORM是用的Hibernate,我就想到这个方法的根本应该是用了load方法.所以特地贴上这2个方法的区别,以备后看.原[url]http://hi.baidu.com/...原创 2009-06-16 15:40:55 · 122 阅读 · 0 评论 -
查询结果排序
QBC方式[code="java"]Query q=session.createQuery(“from Customer c order by c.name”);Criteria c=session.createCriteria(Customer.class);c.addOrder(Order.asc(“name”));c.addOrder(Order.desc(“name”));...原创 2009-06-07 19:35:19 · 117 阅读 · 0 评论 -
SQL检索方式
2.X[code="java"]Query q=session.createSQLQuery(“select * from CUSTOMERS c where c.NAME like :name”,”c”,Customer.class);q.setString(“name”,”zhang%”);//q.setString(0,”zhang%”); List result=...原创 2009-06-07 19:33:08 · 145 阅读 · 0 评论 -
QBE(Query By Example) 模板查询
[code="java"]Customer c=new Customer();c.setAge(99);c.setName(“zhangsan”);List result=session.createCriteria(Customer.class).add(Example.create(c)).list();[/code]QBE只支持=和like,不支持or > ...原创 2009-06-07 18:45:55 · 227 阅读 · 0 评论 -
通过Hibernate API声明事物边界
通过Hibernate API声明事物边界(1)声明事物的开始边界Transaction tx = session.beginTransaction(); 在不受管理环境中,这个方法开始一个新的JDBC事务;在受管理环境中,如果已经存在一个JTA事务,就加入这个JTA事务,如果没有现成的JTA事务,就开始一个新的JTA事务。Hibernate访问JDBC API的具体细节对应用程序是透...原创 2009-09-14 09:46:49 · 137 阅读 · 0 评论 -
Criteria实现多表查询
感谢这个兄弟的资料 [url]http://www.blogjava.net/danxy2008/archive/2006/01/18/28437.html[/url]自己的例子有点复杂,我就摘抄这位的吧Criteria 可以進行複合查詢,即在原有的查詢基礎上再進行查詢,例如在 Room 對 User 的一對多關聯中,在查詢出所有的 Room 資料之後,希望再查詢 users ...原创 2009-08-25 09:30:03 · 3866 阅读 · 0 评论