
hibernate
文章平均质量分 59
luckarecs
这个作者很懒,什么都没留下…
展开
-
Hibernate映射关系之一对一 and 一对多 or 多对一
个人原创,如有转载请指明出处,谢谢将有很长一段时间不再使用Hibernate,现在将Hibernate常用的映射关系写在blog上,防止日后再次使用时又忘记了,哎,现在的脑子啊...以学生和老师为例,首先说明单向的多对一和一对一的关系:在同一课堂内,有N个学生,只有1个老师,所以学生对老师是单向的多对一,也可以做成双向的,但是这样就会有数据的冗余,再本章节最后才会说明双向关转载 2011-12-20 16:20:18 · 1057 阅读 · 0 评论 -
Hibernate分页查询原理解读
Hibernate 可以实现分页查询,例如:从第2万条开始取出100条记录Query q = session.createQuery("from Cat as c");q.setFirstResult(20000);q.setMaxResults(100);List l = q.list();那么Hibernate底层如何实现分页的呢?实际上Hibernate的转载 2011-11-20 11:45:10 · 655 阅读 · 0 评论 -
关于 hibernate 逻辑删除 默认查询过滤条件问题(java set 条件)
数据库表采用逻辑删除,修改表的一个字段(如:status,1:存在;2:删除)即为删除。在复杂的表关系时(如:多对一),我们要从一这一段去看多,怎么加条件。因为我之前用的是 annotation,所以可以在一的那一段的Set上加上@Where(clause="status = 1")就可以了。如果是xml同样在XML的配置文件里加上相应的标签就可以了转载 2012-05-18 12:09:06 · 4216 阅读 · 0 评论 -
Fixed HibernnateOptimisticLockingExceptions for startproject and team…
src/main/java/org/telscenter/sail/webapp/presentation/web/controllers/student/TeamSignInController.java@@ -38,6 +38,7 @@ import net.sf.sail.webapp.presentation.web.controllers.Cont转载 2012-04-06 12:37:52 · 758 阅读 · 0 评论 -
Hibernate 乐观锁 org.hibernate.StaleObjectStateException 异常
Hibernate乐观锁大多是基于数据版本(version)记录机制实现的。所谓的数据版本,就是为数据增加一个版本标识,在基于数据库表的版本解决方案中,一般是通过为数据库表增加一个version字段来实现。 读取数据时,将此版本号一同读出,之后更新时,对此版本号加1。此时,将提交数据的版本号与数据库表对应记录的当前版本信息进行对比,如果提交的数据版本号大于数据库表中的当前版本号,则予以更新,否则认转载 2012-04-05 17:32:18 · 5707 阅读 · 0 评论 -
主题:hibernate二级缓存攻略
很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下hibernate的二级缓存的,今天终于忍不住了。我的经验主要来自hibernate2.1版本,基本原理和3.0、3.1是一样的,请原谅我的顽固不化。hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级缓转载 2012-03-06 16:03:45 · 512 阅读 · 0 评论 -
什么是hibernate中的二级缓存
在向大家详细介绍Hibernate二级缓存之前,首先让大家了解下一级缓存,然后全面介绍Hibernate二级缓存。Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存可以转载 2012-03-06 16:04:02 · 673 阅读 · 0 评论 -
Hibernate 延迟加载剖析与代理模式应用
Hibernae 的延迟加载是一个非常常用的技术,实体的集合属性默认会被延迟加载,实体所关联的实体默认也会被延迟加载。Hibernate 通过这种延迟加载来降低系统的内存开销,从而保证 Hibernate 的运行性能。下面先来剖析 Hibernate 延迟加载的“秘密”。集合属性的延迟加载当 Hibernate 从数据库中初始化某个持久化实体时,该实体的集合属性是否随持久化类一起初始化转载 2012-03-06 15:30:15 · 810 阅读 · 0 评论 -
通过hibernate去调用存储过程
之前一直误以为用了hibernate之后就不可以使用存储过程了 可能是因为跨平台的考虑,好像这方面的资料还真的是上很少介绍(请允许我的孤陋寡闻) 说实话还真看不出来hibernate调用存储过程有什么优势 Java代码 CREATE TABLE `proctab` ( `id` int ( 11 ) NOT NULL auto转载 2012-02-11 20:20:25 · 620 阅读 · 0 评论 -
hibernate调用存储过程
摘要:本文以详尽的实例展示了hibernate3.x中调用存储过程各步骤,从建立测试表、存储过程的建立、工程的建立以及类的编写和测试一步一步引导用户学习hibernate3.x中调用存储过程的方法. 如果底层数据库(eg. Oracle、mysql、sqlserver)等支持存储过程,可通过存储过程执行批量删除、更新等操作。本文以实例说明在hibernate3.x中如何调用存储过程。转载 2012-02-11 20:19:21 · 1027 阅读 · 1 评论 -
Hibernate映射关系之多对多关系映射
多对多在大多数应用中还是以一张中间表,以及其pojo类拆分成两个1对多来解决.但是偶尔也会使用中间表并不使用中间表的pojo进行多对多的映射还是以Student和Teacher两个类做例子.先介绍下多对多不使用中间POJO类的方法:单向关联:public class Student {private Integer id; //ID,唯一标识private转载 2011-12-20 16:19:43 · 731 阅读 · 0 评论 -
hibernate中lazy什么时候不用
lazy=true,就是用到才会去数据库加载,但如果要用到1000个lazy属性,就产生多1000个SQL语句,引起1000次的查询,对DB和网络都是非常恐怖的性能问题。典型的N+1次查询的问题。减少SQL语句,能够大幅的提高性能;但读取不需要的属性,又会浪费内存、数据库和网络资源。所以合适的属性颗度划分非常重要。一次加载全部需要的属性,把不需要的属性延时加载。按照业务需求,把属性按需求进转载 2011-12-20 17:40:45 · 1021 阅读 · 0 评论 -
Hibernate 中的 merge方法何解?
文章一:一直很纳闷这个merge和persist方法,平时也很少用。今天研究下总结下 一、merge 翻译:合并;融合 其实merge方法很简单,看代码。 Java代码 @Entity public class Father { @Id @GeneratedVa转载 2012-07-26 11:14:07 · 12794 阅读 · 0 评论