-
hibernate的级联显示问题5
先说说现在的设计
class userPosition(){//用户与职位的关系 多对多关系
String jobNumber;//职工号
long positionId;
}
class job(){//职务
Long id;
String name;
}
class department(){//部门
Long id;
String name;
}
class position(){//职位
long jobId;
long departmentId;
String name;
}
,现在要根据根据用户的职工号查询用户的相关职位,并在列表界面显示职位名称\职位所在机构名称\职位所属职务的名称,
目前系统使用hibernate,但是又不能使用级联查询的lazy,因为页面使用了ajax,所有返回的数据都会被转成json.
另外由于很多时候职务/部门/职位只是单表操作,
所以不大想用hibernate的级联
大家有什么好办法没??提提建议
2012年2月24日 17:41
1个答案 按时间排序 按投票排序
-
1.首先是不是缺了点
class position(){//职位 long id //是不是缺了这个 long jobId; long departmentId; String name; }
2. 从你的介绍看来 User 多对多 position, position多对一department, position多对
一job, 是这样吗?
3. 既然不能用级联lazyload的话,
要么用code一步一步的查询实现,一个一个的找到。
要么用一个较复杂的HQL语句实现,
还要是性能比较苛刻的话就只能用SQL语句了。
我个人更喜欢用一个较复杂的HQL语句实现SELECT p.name, d.name, j.name FROM Position p, Department d, Job j, UserPosition u WHERE u.jobNumber = 职工号 AND u.positionId = p.id AND p.jobId = j.id AND p.departmentId = d.id
2012年2月24日 18:57
相关推荐
总的来说,这个项目展示了如何使用Hibernate、Ajax和DWR来实现一个高效、用户友好的省市县三级级联选择功能。开发过程中涉及了ORM、MVC架构、数据库操作以及前端交互等多个方面,是学习和实践Web开发技能的好实例。
在IT行业中,级联显示是一种常见的用户界面设计技术,它允许用户从多个相关选项中进行选择,这些选项之间存在依赖关系。在这个场景中,我们关注的是如何在Java中结合Struts和Hibernate框架来实现级联的树形和下拉...
7. JSP或HTML页面:前端展示,包含Ajax请求的JavaScript代码,以及显示级联菜单的HTML元素。 这个项目对于理解和实践Java Web开发中的MVC架构、ORM技术以及异步交互有着重要的意义,也是提高Web应用交互性和用户...
Struts、Hibernate以及SQLServer2000是Java Web开发中的三个重要技术,它们共同构建了一个功能丰富的级联下拉框程序。这个程序的核心目的是在用户界面中提供一种交互方式,使得用户可以从一个下拉框的选择中动态地...
级联菜单的数据通常存储在多层关联的表结构中,Hibernate可以通过HQL(Hibernate Query Language)或 Criteria API 查询这些数据。 4. **级联菜单的概念**:级联菜单,也称为下拉菜单或子菜单,是指菜单项展开后...
但需要注意,过度使用级联查询可能会导致性能问题,因为它可能会引发"n+1查询"问题,即每获取一个父对象就查询一次子对象,这在数据量大时效率极低。 为了优化,可以考虑使用JOIN查询或二级缓存。在Hibernate中,...
- 配置Action:定义每个级联操作对应的Action,包括接收请求、处理业务逻辑和返回结果。 - 使用Ajax插件:Struts2有内置的Ajax支持,如JQuery插件,可以方便地发送异步请求并更新页面部分区域。 - 定义结果类型:...
在本示例中,JSP将负责显示页面,包括创建和初始化级联下拉列表,以及处理AJAX回调后的数据更新。 实现步骤大致如下: 1. 创建JSP页面:在JSP中,你需要创建两个或者更多个下拉列表,并绑定AJAX事件监听器。当第一...
例如,选择一个国家后,接着的城市下拉列表会显示相应国家的城市列表。这种级联效果可以通过监听主下拉列表的onChange事件,然后发送Ajax请求来实现。 接下来,我们引入EJB作为后端处理逻辑的组件。EJB是一种Java ...
在省份城市级联查询中,用户选择省份后,通过Ajax异步请求,无需刷新页面即可获取并显示对应省份的城市列表。这样可以提供更流畅的交互体验,提高用户的满意度。 Spring是一个全面的Java企业级应用开发框架,它提供...
在这种情况下,当用户在省份列表中选择一个特定的省份时,城市列表会自动更新只显示该省份的城市;同样,当城市选定后,县(区)列表也会根据所选城市进行相应更新。这种功能在地理信息系统、地址输入等场景中非常...
在SSH(Spring、Struts2、Hibernate)框架中,开发Web应用时经常需要与前端进行数据交互。EasyUI是一款基于jQuery的UI库,用于构建现代、互动的用户界面。在处理数据展示时,我们可能需要将后端Java对象转换为JSON...
4. **级联操作**: 在关联映射中,Hibernate允许级联操作,这意味着对一个实体的操作会影响到与其关联的其他实体。 5. **HQL(Hibernate Query Language)**: Hibernate提供了自己的查询语言HQL,类似于SQL,但面向...
`hibernate.show_sql`用于控制是否显示生成的SQL语句等。 2. **基本CRUD操作** - **创建**: 使用Session的`save()`或`persist()`方法保存实体到数据库。 - **读取**: 通过`get()`或`load()`方法获取单个实体,...
1. Hibernate产生的原因:Hibernate的出现主要是为了解决JDBC编程中的一些问题,如代码和SQL混杂,不利于维护;SQL语句使得程序失去面向对象的特性;数据模型变化需要手动修改大量SQL;以及SQL错误在编译时无法检查...
如果在阅读过程中遇到中文乱码问题,只需将浏览器的编码设置为UTF-8,即可正常显示中文内容。 在《Hibernate 3.6.7.Final 中文帮助文档》中,你将找到以下关键知识点: 1. **Hibernate 概述**:介绍Hibernate的...
4. 国际化:支持多语言错误消息,可根据用户设置的语言环境显示相应的错误提示。 5. 错误处理:提供统一的验证结果处理机制,方便获取所有验证失败的详细信息。 三、验证流程与原理 1. 注解解析:在执行验证时,...
6. **`hibernate.max_fetch_depth`**: 设置Hibernate的最大级联加载深度。 ```properties hibernate.max_fetch_depth=3 ``` 这个配置项控制Hibernate在进行关联加载时的最大深度,避免无限递归导致性能问题。 7...
- **处理与渲染**:实现业务逻辑,调用Hibernate操作数据库,并返回结果给前端显示。 - **部署与测试**:将应用程序打包并部署到服务器上,通过浏览器访问进行功能测试。 #### Hibernate体系结构与配置 - **体系...