hibernate多表关联查询
来源:互联网 发布:百度全家桶 知乎 编辑:程序博客网 时间:2024/05/29 03:16
项目接触到多表查询并显示,在这里总结一下。
实训学生表中有classId,但没有年级和班级,实训班级表中有年级和班级。两表通过实训班级ID(classId)关联。首先,实训学生表中有实训班级ID这一列,在实训学生类中,实训班级ID不用写,只需用实训班级对象代替即可:
private TraClass traClass;//实训班级对象
在实体类添加完后,在类的映射文件中同样添加。
<!-- 实训班级对象 -->
<many-to-one name="traClass" column="classId"
class="com.dh.stu.traclass.pojos.TraClass" insert="false" update="false">
</many-to-one>
在这里,添加多对一关系,配置文件所在类为“多”,即学生表;实训班级表为“一”。这里注意,many-to-one中,name对应实训学生表中的属性,即班级对象。column对应实训学生表的列名。class对应“一”所在类的路径名。
这样,关联关系就配好了,下面就是在页面中获得属性值。
列表页面中,${item.traClass.className }。即可显示出两表的数据。
其次,考虑到多表查询,使用拼装hql语句分页,并返回list。
public String list() {
// 从请求参数中获取pageNumber
String[] str = ActionContextUtils.getParameters(Globals.PAGE_NUMBER);
int pageNo = NumberUtils.toInt(str[0], 1);
StringBuffer hql = new StringBuffer();
hql.append(" from TrainStudent t where 1=1 ");
List<Object> params = new ArrayList<Object>(0);
if (!StringUtils.isEmpty(this.grade)) {
hql.append(" and t.traClass.grade like ?");
params.add("%" + this.grade + "%");
}
if (!StringUtils.isEmpty(this.className1)) {
hql.append(" and t.traClass.className like ?");
params.add("%" + this.className1 + "%");
}
if (!StringUtils.isEmpty(this.studentName)) {
hql.append(" and t.studentName like ?");
params.add("%" + this.studentName + "%");
}
if (!StringUtils.isEmpty(this.studentNo)) {
hql.append(" and t.studentNo like ?");
params.add("%" + this.studentNo + "%");
}
Pagination<TrainStudent> pagination = this.trainStuService.findByPage(
pageNo, this.getPageSize(), hql.toString(), params.toArray());
// 把pagination对象保存到request范围中
ActionContextUtils.setAtrributeToRequest("pagination", pagination);
return "list";
}
这样,就可以实现多表显示及查询了。
- hibernate多表关联查询
- hibernate多表关联查询
- hibernate多表关联查询
- Hibernate对多表关联查询
- Hibernate对多表关联查询
- Hibernate对多表关联查询
- Hibernate对多表关联查询
- Hibernate对多表关联查询
- Hibernate对多表关联查询
- Hibernate对多表关联查询
- hibernate 多表关联查询(收藏)
- Hibernate对多表关联查询
- Hibernate对多表关联查询
- Hibernate 多表关联查询示例
- Hibernate 进行多表关联查询
- Hibernate对多表关联查询
- Hibernate对多表关联查询
- Hibernate对多表关联查询
- 移动终端和pc浏览器版本检测
- C++解惑整理
- Greek Gods,Roman Gods and Chinese Gods
- Anaroid WebView详解大全
- 大数据时代,野心勃勃的MongDB为你处理海量数据!
- hibernate多表关联查询
- Eclipse启动Tomcat Server没有加载(运行)Web项目的解决办法
- ie中innerHTML出现问题
- 关于H264,X264,DivX,Xvid的小知识 fr net
- 爱一个不爱你的人,就像在机场等一艘船
- 为Eclipse定制你自己的注释模板变量
- Array与ArrayList的关系与区别
- ORA-27101: shared memory realm does not exist 问题解决办法
- 版本控制与git