`

用HASHMAP显示某些无法直接查询到的关联属性

阅读更多

在使用Hibernate查询的时候,我们有时候无法直接查询到某些属性,比如查询保单表PublicPolicy,里面有产品ID,但是页面要显示产品名称,在Product表中。当然,我们也可以采用连表查询的方式,查询出对象数组,比如:

select pd.productName, pp from PublicPolicy pp,Product pd where pp.productCode = pd.productCode

 

return query.list();

 

这样,在返回的对象数组就包含了产品名称和对应的这个保单对象。

 

除此之外,我们还可以通过HASHMAP在页面中直接得到productCode对应的productName

 

思路如下:

 

在 DAO 中,查询到所有的产品信息。

 

		try {
			Session _session = session == null ? getSession() : session;
			String hql = "select productCode, productName from Product order by createDate";
			Query query = _session.createQuery(hql);
			return query.list();
		} catch (Exception e) {
			log.error("查询出错!", e);
			throw new DaoException("查询出错!");
		} finally {
			if (session == null) {
				closeSession();
			}
		}
		

 

在ACTION中构造HASHMAP

 

// 方案名称 Map
			Map schemes = new HashMap();
			try {
				List schemelist = SchemeDao.getInstance().getSchemeAll(null);
				if(schemelist != null && schemelist.size() > 0){
					for(int i=0; i<schemelist.size(); i++){
						Object[] objs = (Object[]) schemelist.get(i);
						schemes.put(objs[0], objs[1]);
					}
				}
			} catch (DaoException e) {
				// TODO Auto-generated catch block
				log.error(e);
			}
			request.setAttribute("schemeMap", schemes);

 

在页面中可以直接得到产品名称。

 

<!--<td nowrap>
	
	<%--方案名称--%>
		
	${schemeMap[billDetail.schemeCode] }
	
</td>

 

这种方法比较方便灵活,而且不必改变原有的查询,值得借鉴。

分享到:
评论

相关推荐

    枚举 HashMap

    当然,这种实现方式也有其局限性,例如无法像枚举那样直接使用switch语句,但可以通过自定义`EnumItem`类的方法来实现类似的功能。总的来说,"枚举 HashMap"是一种实用的技巧,可以在某些场景下替代或补充Java的枚举...

    双关键字HashMap

    描述中的"这是我自己写的,用2种方式实现,可以直接使用,也可以用于学习"意味着这个压缩包中包含两种不同的实现方式。这为开发者提供了多种选择,可以根据实际需求和性能考虑来选择合适的实现。同时,这也是一种...

    静态显示键值.zip

    在IT领域,静态显示键值通常涉及到编程中的数据表示和用户界面设计。在这个场景中,"静态显示键值"可能是指在应用程序中以固定、非交互式的方式展示配置信息、设置参数或者元数据的一种方式。这些键通常是字符串,...

    listview多选

    如果不存在,添加到HashMap并设置初始状态。 4. **Checkbox的交互逻辑**: 为了同步Checkbox的状态和HashMap,可以在Checkbox的CheckedChangeListener中更新HashMap。同时,当HashMap的状态改变时,需要同步更新...

    java web无数据库实现数据增删改差

    虽然这个项目没有直接使用数据库,但JSTL的某些功能可能被用到了类似的数据操作上。 实现数据的增删改查,通常会涉及到以下步骤: 1. 增(Create):创建一个新的数据对象,将相关信息填充到对象中,然后将其添加...

    实例180 - 高效的枚举元素映射

    在某些语言中,枚举可以具有方法和属性,从而使其成为一个更强大的工具。 描述中提到的“NULL”可能是指没有具体的描述信息,但我们可以通过标题和标签来推测讨论的内容。标签“源码”和“工具”表明这篇博客可能...

    日电光学.doc

    - **HQL(Hibernate Query Language)**:这是一种面向对象的查询语言,它允许开发人员使用类名和属性名来构造查询语句。例如,`from Employee e where e.salary &gt; 50000`。 - **Criteria API**:提供了一种基于...

    java版简单学生成绩管理系统

    【Java版简单学生成绩管理系统】是一个初学者或者教学实践中常见的项目,主要目的是通过编程实现对学生成绩的管理,包括录入、查询、修改和统计等功能。这个系统使用Java语言编写,展示了Java在数据处理和界面设计上...

    超级有影响力霸气的Java面试题大全文档

    当客户机第一次调用一个Stateful Session Bean 时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用Stateful Session Bean 的方法时容器会把调用分派到与此客户机相关联的Bean实例...

    2021-2022计算机二级等级考试试题及答案No.10871.docx

    10. Access查询类型:Access支持多种查询类型,包括选择查询、交叉表查询、参数查询、SQL查询和动作查询。 11. 参照完整性规则:在一对多的关系中,父表字段应设置为主索引,子表字段设置为外键(普通索引),以...

    2021-2022计算机二级等级考试试题及答案No.11358.docx

    1. 菜单项的Caption和Shortcut属性:Caption属性用于设置菜单项的显示文本,而Shortcut属性则设定与其关联的快捷键。在本题中,快捷键Ctrl+L不会触发Click事件,因为Alt+D是激活子菜单的标准快捷键。 2. UDP通信与...

    2021-2022计算机二级等级考试试题及答案No.18383.docx

    在某些编程环境中,通过`Picture`属性来设置显示的图片。 #### 数据结构的存储方式(题目18) - **知识点概述**:顺序存储结构是数据结构的一种存储方式,它将数据元素按一定的顺序存放在连续的存储空间中。然而,...

    Java笔试题(同名4964).docx

    即使子类继承了父类,也无法直接访问父类中被封装的方法,除非它们被声明为`public`或`protected`。 3. **继承**:Java不支持多继承,即一个子类只能有一个父类,但可以通过接口实现多重继承的效果。继承具有传递性...

    2021-2022计算机二级等级考试试题及答案No.1830.docx

    7. **获取字符串的最后一个字符**:在某些编程语言中,可以通过索引来获取字符串的最后一个字符,但题目中没有提供具体的语言环境,所以无法给出确切的表达式。一般而言,如果是Python,可以使用`str[-1]`,而在C++...

    java面试题汇总

    在Java面试中,面试官可能会考察各种各样的技术知识点,以下是一些可能被问到的Java面试题及其详细解释: 1. **final, finally, finalize的区别** - `final` 用于声明不可变的变量、不可覆盖的方法或不可继承的类...

    阿里高级java经典88题目和答案

    2. **指定初始容量**:对于某些集合类(如`ArrayList`和`HashMap`),允许预先设定初始容量。如果能够大致估计存储元素的数量,通过设置合理的初始容量可以避免不必要的扩容操作,减少哈希冲突和计算成本。 3. **...

    Java笔试面试题详解

    7. **SQL多表关联查询**:SQL中的JOIN操作可以实现多表关联查询,包括内连接(INNER JOIN)、外连接(LEFT JOIN, RIGHT JOIN, FULL JOIN)等。 8. **AJAX远程数据访问**:关键对象XMLHttpRequest,用于异步通信;关键...

    2021-2022计算机二级等级考试试题及答案No.1452.docx

    22. DO命令扩展名:在某些编程或脚本环境中,如DOS批处理,DO命令通常与扩展名.PRG或.EXE关联。 23. 数据库系统与文件系统的区别:数据库系统解决了文件系统中的数据冗余和数据独立性问题,提供了一种更高级别的...

    技术笔记(第一部分整理)

    分页查询则是指按照一定的规则(如每页显示多少条记录)来分批展示数据,这通常与条件查询结合使用。 #### 子查询 子查询可以在主查询中嵌套使用,作为过滤条件的一部分。子查询可以非常灵活地应用于各种复杂的查询...

Global site tag (gtag.js) - Google Analytics