
jpa/hibernate
yourenyouyu
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
用hibernate的关联代替数据库的外键关联
数据库的外键关联删除对象时相当的慢,会去查看每一个关联的表的每条记录,这样当一个表被很多表引用时,删除这个表中的记录的代价是相当大的。hibernate的对象关联默认会在两个表之间做外键关联,而它的级联删除却没有用数据库的这种特性,这是个相当明智的决定。hibernate用两条delete来完成同样的功能,如果数据库还存在外键的话,那么有一条delte是很慢的,我们手动把数据库的外键关联删除掉速度...2008-08-14 12:10:43 · 223 阅读 · 0 评论 -
关于hibernate的批处理
很多系统中大数据批量处理在所难免,网上也有很多关于hibernate的批处理建议,基本上都是一样的,但如果我们的系统设计的比较纯面向对象,这种方案是非常失败的。下面我来讲述下我使用这种方法碰到的问题,然后分析问题的原因,给出我们目前能接受的方案。 传统方案 利用hibernate.jdbc.batch_size参数,session.flush();,session.clear();来释放内存 &l...2008-08-14 13:42:06 · 396 阅读 · 0 评论 -
hibernate 的find与普通createQuery的区别
find是根据主键首先去缓存中查找,找到就直接返回,找不到就接着去数据库中查找; createQuery直接就去数据库中查找,不管缓存中是不是已经存在了; 两者一般情况下逻辑效果是一样的,只是性能上有些差别,但有些特定情况下就不同了。 输入一批“水表数据信息”,循环处理这些信息,当水表信息表示的水表不在数据库中时就根据这些信息构造水表实体存入数据库,输入的“水表数据信息”可能有相同的水表信息,这样...2009-03-01 11:32:35 · 720 阅读 · 0 评论 -
conversation flush-mode
页面配置文件中定义了对话的flush模式 <begin-conversation join="true" flush-mode="MANUAL"/> 代码里必须主动调用em.flush();,否则不会更新数据库 public void updateJgdwGN(Jgdwjbxxb jgdw,List<TreeNodeVO> gns){ em.c...2009-03-11 13:03:06 · 196 阅读 · 0 评论 -
hibernate一级和二级缓存
Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存(一般情况下是 线程范围)。这一级别的缓存由hibernate管理的,一般情况下无需进行干预; 第二级别的缓存是SessionFactory级别的缓存(全局缓存),它是属于进程范围或群集范围的缓存。这一级别的缓存可以进行配置 和更改,并且可以动态加载和卸载。 Hibernate还为查询结...原创 2011-03-01 10:14:29 · 127 阅读 · 0 评论 -
jpa相关知识总结
1)jpa 需要在classpath中存在jpa实现jar才行,比如hibernate-entitymanager.jar,下面有META-INF\services javax.per...文件中配置了jpa实现org.hibernate.ejb.HibernatePersistence 当classpath下没有jpa实现jar是不会启动jpa的。 2)jpa会找classpath所有的ME...原创 2011-12-30 13:16:47 · 137 阅读 · 0 评论