我在开发的过程中遇到一些疑问,希望各大牛帮我解答下。
环境介绍:
假设现在有2个表
id | 主键 |
name | 文章分类中文名 |
desc | 描述 |
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里又有什么区别。
期望大牛们为我解答,也欢迎大家讨论一下,如果有表达不清晰的地方可以尽管问。谢谢...
相关推荐
【标题】:“Hibernate+jsp+Struts2开发的CRUD和分页代码”是指使用Java技术栈中的Hibernate对象关系映射框架、Struts2 MVC框架以及JSP(JavaServer Pages)进行基本的数据操作(创建、读取、更新、删除,简称CRUD)...
总之,理解和掌握Hibernate的HQL查询多对多关系是JSP开发中的重要技能,它可以帮助你高效地处理复杂的数据查询,提高代码的可读性和可维护性。如果有任何疑问,欢迎进一步探讨或查阅相关文档以深化理解。
标题:Hibernate 描述:本文档探讨了...总结,Hibernate作为一个强大的ORM框架,通过提供对象关系映射、SQL生成和优化、跨数据库兼容性等功能,极大地简化了Java应用中的数据库操作,提升了开发效率和代码质量。
描述中还提到"其中的一个例子有点问题没解决",这可能是关于特定代码或配置的疑问,但在这里我们主要聚焦于理解Hibernate的基本工作原理。 **标签解析** "hibernate"标签直接指出了讨论的主题,ORM框架Hibernate。...
在IT行业中,Spring MVC、Hibernate 4和Spring是三个非常重要的框架,它们分别负责Web应用程序的MVC(Model-View-Controller)模式实现、对象关系映射(ORM)以及依赖注入(DI)和面向切面编程(AOP)。这篇详细的...
【金典springMVC+Hibernate框架实例】是一个深入讲解企业级应用开发的教程,它结合了Spring MVC和Hibernate两大主流框架,旨在帮助开发者构建高效、稳定且易于维护的Java Web应用。Spring MVC作为Spring框架的一部分...
SSH,即Spring、Spring MVC和Hibernate的组合,是Java Web开发中的一个经典框架栈,用于构建高效、可维护的企业级应用程序。在这个压缩包文件中,包含的是这些框架所需的jar包,它们是运行和开发SSH应用的基础组件。...
SSH,全称是Spring、Struts2和Hibernate,这三大框架的组合在Java Web开发中被广泛使用。Spring提供了依赖注入(DI)和面向切面编程(AOP),Struts2作为MVC框架负责控制层,而Hibernate则作为ORM工具处理数据库操作...
Springboot+Springmvc+Hibernate 在线招标系统源代码.zip 如有部署疑问可私信联系 . └── 源代码 ├── OnlineBiddingSystem.iml ├── pom.xml └── src ├── main │ ├── java │ │ └── ...
# 做了BaseDao的简单封装, 并做了基于BaseDao的增/删/改/查/分页查询等操作的示例(并在示例中列出了访问路径); # 工程所需jar包、sql脚本放在了百度网盘(资源内有下载地址), jar包下载后拷贝到\WebContent\WEB-INF\...
本系统采用struts+spring+hibernate架构,重在讲述三者结合在一起的应用开发,所有源程序都 有详细的注释,供入门者学生参考,未经作者允许不得用于商业用途,只能用于教学或个人学习。 程序只是整个系统中的...
在购物系统中,Hibernate用于管理商品、订单、用户等核心业务实体,通过HQL(Hibernate Query Language)进行数据查询和操作。 3. **JSP(JavaServer Pages)**:作为Java Web应用的视图层技术,JSP用于生成动态...
3、系统已经把一些hibernate dao操作、缓存、快速日志等组件化,打包到类库中。 4、集成了springsecurity3来实现安全管理,支持功能按钮的权限分配,满足大多数要求。 5、后续会继续发布新的版本,为大家提供更好的...
本系统采用struts+spring+hibernate架构,重在讲述三者结合在一起的应用开发,所有源程序都有详细的注释,供入门者学生参考,未经作者允许不得用于商业用途,只能用于教学或个人学习。 程序只是整个系统中的一个...
(写在前面的话,评论中说的图片显示问题解决了,原因是文件被拦截了,感谢帮忙解决问题的同学!...供应商管理模块:为管理员提供实现对供应商信息的管理维,包括对供应商的查询、添加、修改和删除等操作。
供应商管理模块:为管理员提供实现对供应商信息的管理维,包括对供应商的查询、添加、修改和删除等操作。 经销商管理模块:为管理员提供实现对经销商信息的管理维,包括对供应商的查询、添加、修改和删除等操作。 ...
本项目实现了自定义分页架构的封装,自定义后台验证框架,自定义权限验证,自封装hibernate的dao基类,使用简单方便,大大减少了开发中的繁琐任务和冗余代码。由于时间关系,可能项目中有很多功能没有开发完成,大家...
`Message问题.txt`可能包含了在开发过程中遇到的问题记录,或者是对留言板功能的一些疑问和讨论,对于理解代码的开发过程和解决可能的bug有一定帮助。 这个项目目前正处于功能更新阶段,意味着开发者可能正在对现有...