优化前的代码:
public List findExamGuideByStaff_bak(int belong_exam_id, int belong_table_id) {
String hql="from ExamGuide e where e.belong_exam_id=? and e.belong_table_id=? order by e.guide_no";
List data=null;
Session session=super.getHibernateSession();
Query query=session.createQuery(hql);
query.setInteger(0, belong_exam_id);
query.setInteger(1, belong_table_id);
data=query.list();
if(data!=null&&data.size()!=0){
return data;
}
return null;
}
以下是优化后的代码:其中ExamGuide和ExamGuideExt是一对一关系,ExamGuide有个属性examGuideExt指向ExamGuideExt对象
/**
* 根据员工配置belong_exam_id,belong_table_id查出该员工的的ExamGuide数据和ExamGuideExt数据
* 查找指标
* @return
*/
public List findExamGuideByStaff(int belong_exam_id, int belong_table_id) {
String hql="select e,e.examGuideExt from ExamGuide e where e.belong_exam_id=? and e.belong_table_id=? order by e.guide_no";
List data=new ArrayList();
Session session=super.getHibernateSession();
Query query=session.createQuery(hql);
query.setInteger(0, belong_exam_id);
query.setInteger(1, belong_table_id);
List tmpList=query.list();
for(int i=0;i<tmpList.size();i++)
{
Object[] objs=(Object[])tmpList.get(i);
ExamGuide eg=(ExamGuide)objs[0];
eg.setExamGuideExt((ExamGuideExt)objs[1]);
data.add(eg);
}
if(data!=null&&data.size()!=0){
return data;
}
return null;
}
分享到:
相关推荐
标题"Hibernate ORM - 一对一连接表关联关系" 提示我们,这里主要讨论的是Hibernate ORM框架在处理数据库中一对一(One-to-One)关联映射的方法。Hibernate是一个流行的Java对象关系映射(ORM)工具,它允许开发者用...
- 避免过多的一对多关系,过多的一对多可能导致大量的数据库连接和数据加载,影响性能。 - 使用懒加载(Lazy Loading)策略,延迟加载不常用的数据,降低初始化时的内存占用。 - 合理设置实体的访问策略,例如...
**标题:“Hibernate一对一”** **描述:** 这篇文章主要探讨了Hibernate框架中的一对一关系映射,这是一种在数据库设计中常见的关联方式。作者通过在博客中分享,详细讲解了如何在Java应用程序中使用Hibernate实现...
**标题:“Hibernate 一对一”** 在Java开发中,Hibernate是一个非常流行的对象关系...阅读博文(https://chaoyi.iteye.com/blog/2150870)可获取更深入的解释和示例代码,进一步提升对Hibernate一对一关联的理解。
本文将深入探讨Hibernate性能优化中的一个重要概念——一级缓存,并结合给出的压缩包文件“hibernate_cache_level1”,来详细解析一级缓存的工作原理及其优化策略。 一级缓存是Hibernate内置的一种缓存机制,它存在...
在这个“hibernate实例(一对多,多对一)”的主题中,我们将深入探讨两种重要的关联关系:一对一(One-to-One)和一对多(One-to-Many)。 **一对一关联(One-to-One)** 在一对一关联中,一个实体与另一个实体之间...
18. 示例:不同的映射:除了父子关系映射,还可能有其他类型的映射,如多对多关系映射、一对一关系映射等。这里应该会介绍如何处理这些复杂的映射场景。 19. 最佳实践:最后,文档将总结Hibernate开发中的一些最佳...
在这个实例中,我们将深入探讨Hibernate一对一主键映射的概念、配置以及如何通过源代码和测试程序进行实践。 1. **一对一关系理解**: 一对一关系指的是一个实体类中的记录对应另一个实体类中的唯一一条记录。例如...
1. **避免N+1查询**:在一对多关系中,使用`fetch`策略或`JOIN`查询,防止加载单个实体时引发大量额外查询。 2. **限制结果集大小**:使用`setMaxResults()`限制查询返回的结果数量,防止一次性加载大量数据导致...
本主题聚焦于Hibernate中的一对一(OneToOne)关系的源码分析,这对于理解Hibernate的工作原理和优化数据访问性能至关重要。 在Hibernate中,一对一关系是指两个实体类之间存在一个唯一的对应关系,通常通过主键...
- 集合对象:实体对象中定义的集合属性,例如一对多、多对多等关联关系。 - 查询结果:执行HQL或Criteria查询语句的结果集。 一级缓存的主要优点是使用简单、开销小,能有效避免同一会话内对同一数据的重复查询,...
本篇文章将详细讲解"hibernate一对多与多对一"的关系映射概念,以及如何在实际开发中进行配置和使用。 首先,我们来看一下“一对多”关系。在现实世界中,这种关系可以对应到例如一个班级有多个学生,或者一个人...
9. **优化实体类设计**:减少过多的一对多或多对多关系,避免循环引用,以减少内存占用和垃圾回收压力。 10. **数据库设计与索引**:合理设计数据库表结构,为频繁查询的字段添加索引,可以显著提升查询速度。 11....
5. **关联映射**:熟悉一对一、一对多、多对一、多对多等不同类型的关联映射配置。 6. **延迟加载和懒加载**:理解何时及如何使用这些特性来提高性能。 7. **实体生命周期**:了解Hibernate如何处理对象的创建、...
- **利用Spring提供的缓存管理机制**:Spring提供了对Hibernate一级缓存和二级缓存的支持,合理利用缓存可以显著提升应用性能。 - **性能调优**:通过对Hibernate配置参数进行调优,比如设置合理的缓存策略、调整...
- **类间关系与键值的映射**:支持对象之间的关联关系,如一对多或多对多关系,并将其映射为数据库中的外键或联合键。 常见的O/R Mapping实现包括TopLink(商业产品)、iBatis和Hibernate。 ##### 2.2 Hibernate ...