
hibernate
zhangdberic
这个作者很懒,什么都没留下…
展开
-
提高hibernate性能
文章出处:http://blog.youkuaiyun.com/tianyawudie/archive/2008/06/06/2517233.aspx在一个拥有单独业务层的应用中,业务层必须在返回之前,为web层“准备”好其所需的数据集合。这就意味着 业务层应该载入所有表现层/web层所需的数据,并将这些已实例化完毕的数据返回。通常,应用程序应该 为web层所需的每个集合调用Hibernate.initia...2008-06-25 08:50:01 · 99 阅读 · 0 评论 -
hibernate fetch="join"
多对一属性,设置fetch='join'时.1.hql查询时,要根据lazy是否等于true来,确定fetch='join'是否生效。如果lazy=true,这不会生效(和没有设置fetch='join'一样),需要你在hql语句中明确写明left join fetch 这个属性。如果lazy=false,则会生成再生成一个select语句单独查询把(和fetch=join的语意不符),查...原创 2011-09-09 14:02:09 · 259 阅读 · 0 评论 -
多对多一次性删除
你需要取消原来的整个集合类(解除其引用set集合(null)), 然后再赋值(set集合(新集合))一个新的实例化的集合类,只包含需要的元素。原创 2011-09-09 14:05:37 · 136 阅读 · 0 评论 -
理解集合性能
[url]http://doc.javanb.com/hibernate-reference-3-2-0-zh/ch19s05.html[/url]原创 2011-09-09 14:06:41 · 130 阅读 · 0 评论 -
lock(entity)用法
1.lock(entity)方法把一个脱管的实体重付到session上,重付后对entity属性的修改,将生成对应的update语句,没有修改不会生成update语句。例如:lock一个是实体一共有10个属性,lock后对三个属性进行了修改,如果你对hbm.xml的class定义了dynamic-update='true',则生成的update语句只对这三个字段进行修改。2.lock(en...原创 2011-09-09 14:07:56 · 276 阅读 · 0 评论 -
cascade的delete-orphan配置
在一对多的设置上delete-orphan多见,但在many-to-one上,其依然好用。例如我们常用many-to-one来代替one-to-one,这样有时就要求根据把父对象的(many-to-one)属性设置为null是,直接把其属性对应的表子记录也要删除。例如:用户信息对象、用户附属信息对象。两个对象是一对一的(附属对象上用户对象上的一个属性),在hibernate配置上用many...原创 2011-09-09 14:10:05 · 341 阅读 · 0 评论 -
update(),用法
update(entity),是把一个游离的对象,重新让session来进行管理。一般最后都会生成一个全实体属性更新的update语句。官方语言:update()方法在数据库中强制更新对象的持久化状态,始终计划一个SQL Update。 实体对象在传递到update()之前或者之后被修改都没有关系。update()调用把脱管实例重付到 ...原创 2011-09-09 14:11:50 · 2609 阅读 · 0 评论 -
hibernate dynamic-update
1.必须在一个session内,先get出对象,然后再修改。2.如果要让一个已经脱管的实例动态更新,要使用lock()方法。lock()方法调用后,再修改实例属性,被修改实例属性会生成sql update语句。 ...原创 2011-09-09 14:12:23 · 129 阅读 · 0 评论 -
hibernate注意
1.父子关系的级联(cascading)操作准确语义如下:•如果父对象被 persist(),那么所有子对象也会被 persist()[color=red]•如果父对象被 merge(),那么所有子对象也会被 merge()[/color]•如果父对象被 save(),update() 或 saveOrUpdate(),那么所有子对象则会被 saveOrUpdate()•如果某...原创 2010-11-18 13:43:18 · 110 阅读 · 0 评论 -
hibernate composite
2009-06-19 14:06:24 · 121 阅读 · 0 评论 -
关于merge与IdTransferringMergeEventListener的用法
newObj = getHibernateTemplate().merge(obj); obj是一个游离对象,该方法将把obj中的属性更新到与obj主键一致的持久对象中,并返回该持久对象newObj。如果没有对应的持久对象,将会新建一个持久对象并将属性拷贝进去,并返回新对象。 参考: Copy the state of the given object onto the persisten...2008-04-29 09:19:16 · 137 阅读 · 0 评论 -
hibernate 完成的sql调试信息输出
### direct log messages to stdout ###log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog...2008-06-26 13:43:09 · 254 阅读 · 0 评论 -
spring+hibernate如果配置
/org/neptune/session/db/Session.hbm.xml hibernate.dialect=org.hibernate.dialect.Oracle10gDialect...2008-06-26 13:45:39 · 158 阅读 · 0 评论 -
hibernate 一对一 怎样实现更好
hibernate提供两种一对一的方式这里为了说明我们用一个小型的新闻表进行说明[b]第一种[/b]其真实意义上的一对一,副表通过主键与主表的主键进行关联,两个主键是相同。我们来看一上hbm.xml配置 ...2008-07-18 18:14:46 · 151 阅读 · 0 评论 -
hibernate 一些常用的type实例
1.日期时间类型 2.boolean类型,数据库中的类型为CHAR(1),这里java类型true对应于CHAR(1)的Y,而false对应于CHAR(1)的N 3.大文本CLOB类型,这里使用Spring的ClobStringType类,实现数据库CLOB与字符串之间转换...2008-07-22 09:03:44 · 270 阅读 · 0 评论 -
对集合使用连接抓取会有一个限制(fetch)
对集合使用连接抓取会有一个限制:你只能为每个持久类配置一个集合角色、在一次外部连接中执行一次查询。 Hibernate尽可能的禁止类似笛卡儿积查询的情况,而在两个集合间进行的每个外部关联查询, 将会产生一次笛卡儿查询,这显然要比两次查询(无论是延迟查询、或非延迟查询)速度慢。 这里的对一次外部连接集合的限制同样对映射抓取策略和HQL/条件查询都适用。如果你想超越此限制,你必须使用子查询抓取...原创 2009-02-27 15:59:54 · 131 阅读 · 0 评论 -
hibernate-memcached--在Hibernate中使用Memcached作为一个二级分
http://www.blogjava.net/xmatthew/archive/2008/08/20/223293.html 今天在网上看到一个用Memcached作为Hibernate二级分布式缓存,感觉挺有兴趣,就是尝试用了,感觉还不错,就推荐给大家看一下。官方网址: http://code.google.com/p/hibernate-memcached/目前最新版本为1.0,...原创 2009-03-09 11:09:59 · 189 阅读 · 0 评论 -
hibernate 二级cache FAQ
1.已被缓存的对象,被修改后,再get时是从那里获取对象?修改方法(update)提交后,会更新缓存中对象的属性,然后生成sql语句交提交.如果再get将直接从二级cache中读取.2.批量(bulk)的update或delete sql执行后的二级cache如果处理?bulk的sql将把涉及要修改表对应的二级缓存对象作废例如:bulk sql:update user ...2008-02-18 09:01:58 · 100 阅读 · 0 评论 -
cascade与inverse分析笔记
在介绍cascade和inverse之前我们要明确一个问题,这两个xml属性标签,都是定义某个set集合(<set>)或是某个<many-to-one>标签的级联操作和关联维护关系的。因此也只有其做为属性的父类在操作这些属性时,它们才起作用。cascade例如: <class name="Test1" table="Test1" > <i...2008-04-28 17:32:10 · 129 阅读 · 0 评论 -
hibernate的属性延时加载后,同一个对象可以为多个属性复制
例如有一个类User其有两个Group属性。class User { private Group group1; private Group group2; group1 get set; group2 get set;}User user = this.userDao.get(userId);this.userDao.initi...原创 2011-10-26 10:59:48 · 141 阅读 · 0 评论