0 0

关于hibernate查询的和开发中的一些疑问10

我在开发的过程中遇到一些疑问,希望各大牛帮我解答下。

环境介绍:  

假设现在有2个表

category(文章分类)
id 主键
name 文章分类中文名
desc 描述

 

 

 

 

 

 

 

article(文章列表)
id 主键
categoryid 分类id
title 文章标题
content 内容

 

因为用的是hibernate, 上面两个表对应的PO分别是CategoryPO , ArticlePO.没有配置外键映射.

 

1. 现在要求根据文章分类查询个分类的前10条record。

我想到的办法(1) .在service 层查询出所有categoryPO.name,然后再根据categoryPO.name去Article 里查询每个categoryPO.name的各10条。这样我有多少个category.name就返回多少个list,然后遍历每个list就行了。但是这样会造成多条sql语句查询,事务是用spring 配置的在service层的自动事务管理,

                     (2).只用一条HQL 查出一个list结果类似下面

id category.name aritcle.title
1 分类1 标题1
2 分类1 标题2
..... 这里重复。每个分类有10条
11 分类2 标题11
12 分类2 标题12

 但是这句HQL不会写。然后前台在遍历这个list 。每次将遍历的category.name用临时变量保存,当遇到category.name不同是当作下一个category直接重复生成1个DIV显示新的category.

                        (3)在(2)的基础上不left join categoryPO,

id article.categoryid aritcle.title
1 1 标题1
2 1 标题2
..... 这里重复。每个分类有10条
11 2 标题11
12 2 标题12

然后再在java里用for循环把categoryPO set到articlePO里,不知道java的效率高还是数据库的效率高。

 

注:categoryPO我是全部已经缓存在ehcache里的,并且设置为永远不过期。

 

2. 就是有一种情况,我只需要PO的某些字段例如上面的AritclePO 有很多属性,但是某些时候我可能只需要部分例如:title,id...等。我人比较懒不想写select a.title,a.id from AritlcePO a,等语句,因为有时候虽然不是全部字段,但是字段也挺多;我能不能只写from AritclePO ,然后查询的时候,只根据我要的字段生成SQL,而不是默认的查询全部字段。我感觉这个有点类似延迟加载。能实现吗?

 

3. 我如果把对象放在缓存里(这里的缓存是指ehcache),并且设置永远不过期,这和直接在类里加载到内存有什么区别,比如:我用的是tomcat,那如果我把对象直接放到application里又有什么区别。

 

期望大牛们为我解答,也欢迎大家讨论一下,如果有表达不清晰的地方可以尽管问。谢谢...

2013年7月31日 11:29

1个答案 按时间排序 按投票排序

0 0

1.from CategoryPO c where (select count(id) from CategoryPO c1 where c1.name = c.name and c.id<c1.id)<10 order by c.id

2.<property lazy='true'/> 还需要字节码增强!

2013年8月02日 14:21

相关推荐

    Hibernate+jsp+Struts2开发的CRUD和分页代码

    【标题】:“Hibernate+jsp+Struts2开发的CRUD和分页代码”是指使用Java技术栈中的Hibernate对象关系映射框架、Struts2 MVC框架以及JSP(JavaServer Pages)进行基本的数据操作(创建、读取、更新、删除,简称CRUD)...

    JSP 开发之hibernate的hql查询多对多查询

    总之,理解和掌握Hibernate的HQL查询多对多关系是JSP开发中的重要技能,它可以帮助你高效地处理复杂的数据查询,提高代码的可读性和可维护性。如果有任何疑问,欢迎进一步探讨或查阅相关文档以深化理解。

    hibernate

    标题:Hibernate 描述:本文档探讨了...总结,Hibernate作为一个强大的ORM框架,通过提供对象关系映射、SQL生成和优化、跨数据库兼容性等功能,极大地简化了Java应用中的数据库操作,提升了开发效率和代码质量。

    Hibernate的小例子

    描述中还提到"其中的一个例子有点问题没解决",这可能是关于特定代码或配置的疑问,但在这里我们主要聚焦于理解Hibernate的基本工作原理。 **标签解析** "hibernate"标签直接指出了讨论的主题,ORM框架Hibernate。...

    springMvc+hibernate4+spring整合实例

    在IT行业中,Spring MVC、Hibernate 4和Spring是三个非常重要的框架,它们分别负责Web应用程序的MVC(Model-View-Controller)模式实现、对象关系映射(ORM)以及依赖注入(DI)和面向切面编程(AOP)。这篇详细的...

    金典springMVC+Hibernate框架实例

    【金典springMVC+Hibernate框架实例】是一个深入讲解企业级应用开发的教程,它结合了Spring MVC和Hibernate两大主流框架,旨在帮助开发者构建高效、稳定且易于维护的Java Web应用。Spring MVC作为Spring框架的一部分...

    ssh(Spring+Spring mvc+hibernate)的jar包

    SSH,即Spring、Spring MVC和Hibernate的组合,是Java Web开发中的一个经典框架栈,用于构建高效、可维护的企业级应用程序。在这个压缩包文件中,包含的是这些框架所需的jar包,它们是运行和开发SSH应用的基础组件。...

    Spring3+Struts2+Hibernate框架的demo

    SSH,全称是Spring、Struts2和Hibernate,这三大框架的组合在Java Web开发中被广泛使用。Spring提供了依赖注入(DI)和面向切面编程(AOP),Struts2作为MVC框架负责控制层,而Hibernate则作为ORM工具处理数据库操作...

    Springboot开发+Springmvc+Hibernate 在线招标系统源代码.zip

    Springboot+Springmvc+Hibernate 在线招标系统源代码.zip 如有部署疑问可私信联系 . └── 源代码 ├── OnlineBiddingSystem.iml ├── pom.xml └── src ├── main │ ├── java │ │ └── ...

    ssh框架整合step by step (springMVC + spring 5.0.4 + hibernate 5.0.12)

    # 做了BaseDao的简单封装, 并做了基于BaseDao的增/删/改/查/分页查询等操作的示例(并在示例中列出了访问路径); # 工程所需jar包、sql脚本放在了百度网盘(资源内有下载地址), jar包下载后拷贝到\WebContent\WEB-INF\...

    采用struts+spring+hibernate架构电信业务系统

    本系统采用struts+spring+hibernate架构,重在讲述三者结合在一起的应用开发,所有源程序都 有详细的注释,供入门者学生参考,未经作者允许不得用于商业用途,只能用于教学或个人学习。 程序只是整个系统中的...

    web开发项目:网上购物系统

    在购物系统中,Hibernate用于管理商品、订单、用户等核心业务实体,通过HQL(Hibernate Query Language)进行数据查询和操作。 3. **JSP(JavaServer Pages)**:作为Java Web应用的视图层技术,JSP用于生成动态...

    java-ssh开发的权限管理系统-适合开发中小系统。

    3、系统已经把一些hibernate dao操作、缓存、快速日志等组件化,打包到类库中。 4、集成了springsecurity3来实现安全管理,支持功能按钮的权限分配,满足大多数要求。 5、后续会继续发布新的版本,为大家提供更好的...

    中国移动业务管理系统(struts+spring+hibernate)源码

    本系统采用struts+spring+hibernate架构,重在讲述三者结合在一起的应用开发,所有源程序都有详细的注释,供入门者学生参考,未经作者允许不得用于商业用途,只能用于教学或个人学习。 程序只是整个系统中的一个...

    基于SSM(spring+springMVC+MyBatis)开发的仓库管理系统

    (写在前面的话,评论中说的图片显示问题解决了,原因是文件被拦截了,感谢帮忙解决问题的同学!...供应商管理模块:为管理员提供实现对供应商信息的管理维,包括对供应商的查询、添加、修改和删除等操作。

    SSM(spring+springMVC+MyBatis)技术开发的仓库管理系统源码.zip

    供应商管理模块:为管理员提供实现对供应商信息的管理维,包括对供应商的查询、添加、修改和删除等操作。 经销商管理模块:为管理员提供实现对经销商信息的管理维,包括对供应商的查询、添加、修改和删除等操作。 ...

    OA办公系统

    本项目实现了自定义分页架构的封装,自定义后台验证框架,自定义权限验证,自封装hibernate的dao基类,使用简单方便,大大减少了开发中的繁琐任务和冗余代码。由于时间关系,可能项目中有很多功能没有开发完成,大家...

    留言板部分代码

    `Message问题.txt`可能包含了在开发过程中遇到的问题记录,或者是对留言板功能的一些疑问和讨论,对于理解代码的开发过程和解决可能的bug有一定帮助。 这个项目目前正处于功能更新阶段,意味着开发者可能正在对现有...

Global site tag (gtag.js) - Google Analytics