用户登录
用户注册

分享至

hibernate关联表查询

  • 作者: 张家的爱宝宝
  • 来源: 51数据库
  • 2020-10-01
在实体类添加完后,在类的映射文件中同样添加。
  
  
  


  在这里,添加多对一关系,配置文件所在类为“多”,即学生表;实训班级表为“一”。这里注意,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 params = new ArrayList(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 pagination = this.trainStuService.findByPage(
  pageNo, this.getPageSize(), hql.toString(), params.toArray());
  // 把pagination对象保存到request范围中
  ActionContextUtils.setAtrributeToRequest("pagination", pagination);
  return "list";
  }
  这样,就可以实现多表显示及查询了。




  你好!

根据你所说的你可以这样做:
List list=dao.all("from Student");//查询数据库
for(int i=0;i



  可以使用HQL中的连接查询,内连接的方法,很容易就实现了
软件
前端设计
程序设计
Java相关