`
lxcaoxin
  • 浏览: 125120 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

Hibernate3.1实现多表联合查询

    博客分类:
  • SSH
阅读更多
   最近在做毕业设计,Felx+Spring+Hiberinate , 用的Myeclipse6.0.1自带的Hibernate3.1包,在做多表查询时遇到了些问题,没有Hibernate3.2的
SQLQuery q=(SQLQuery) this.getSession().createSQLQuery(sql).setResultTransformer(Transformers.aliasToBean(Production1.class));
的setResultTransformer()方法,无法获得List结果集映射到VO类中,查询网上众多方法后总结了下方法实现多表查询。

Staffshow.java VO类,用来存多表联合查询的Set,Get
package com.gxu.bean;

public class Staffshow {

	private Long staffid;
	private String staffname;
	private String positionName;
	private String deptname;
	private String sex;
	public Staffshow()
	{}
	public Staffshow(Long staffid,String staffname,String sex,String positionName,String deptname)
	{
		this.staffid = staffid;
		this.staffname = staffname;
		this.positionName = positionName;
		this.deptname = deptname;
		this.sex=sex;
	}
	public Long getStaffid() {
		return staffid;
	}
	public void setStaffid(Long staffid) {
		this.staffid = staffid;
	}
	public String getStaffname() {
		return staffname;
	}
	public void setStaffname(String staffname) {
		this.staffname = staffname;
	}
	public String getPositionName() {
		return positionName;
	}
	public void setPositionName(String positionName) {
		this.positionName = positionName;
	}
	public String getDeptname() {
		return deptname;
	}
	public void setDeptname(String deptname) {
		this.deptname = deptname;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	
}


show()方法,其中Staff,Dept,Position为Hibernate映射数据库自动生成的VO类

public ArrayList show() {
		List list = null;
		ArrayList al = new ArrayList();
		// /取得Seesion对象
		Session session = HibernateSessionFactory.getSession();

		// /启动事务
		Transaction ta = session.beginTransaction();

		// /sql语句
		String sql = "select s.*,d.*,p.* from Staff as s ,Dept d,Position p "
				+ "where s.deptid=d.deptid and s.positionid=p.positionid";

		try {
			// /创建Query对象
			SQLQuery query = session.createSQLQuery(sql);
			query.addEntity("s", Staff.class);
			query.addEntity("d", Dept.class);
			query.addEntity("p", Position.class);
			
		
			System.out.println(list.size());

			for (int i = 0; i < list.size(); i++) {
				Object[] obj = (Object[]) list.get(i);
				Staffshow ss = new Staffshow();
				for (int j = 0; j < obj.length; j++) {

					if (obj[j] instanceof Staff) {
						Staff s = (Staff) obj[j];
						ss.setStaffid(s.getStaffid());
						ss.setStaffname(s.getStaffname());
						ss.setSex(s.getSex());
						System.out.print(s.getStaffname() + " ");
					} else if (obj[j] instanceof Dept) {
						Dept d = (Dept) obj[j];
						ss.setDeptname(d.getDeptname());
						System.out.print(d.getDeptname() + " ");
					} else if (obj[j] instanceof Position) {
						Position p = (Position) obj[j];
						ss.setPositionName(p.getPositionName());
					}

				}
				System.out.println(ss.getStaffname() + "----"
						+ ss.getDeptname() + " " + ss.getPositionName());
				al.add(ss);
				System.out.println();
			}
			for (int k = 0; k < al.size(); k++) {

				Staffshow s = (Staffshow) al.get(k);

				System.out.println("<" + s.getStaffid() + " "
						+ s.getStaffname() + " " + s.getDeptname() + " "
						+ s.getPositionName() + ">");

			}
	 }

			ta.commit();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.close();
		}

		return al;

	}
分享到:
评论

相关推荐

    Hibernate+中文文档

    14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接(Join) 14.4. join 语法的形式 14.5. select子句 14.6. 聚集函数 14.7. 多态查询 14.8. where子句 14.9....

    hibernate3.2中文文档(chm格式)

    14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接(Join) 14.4. join 语法的形式 14.5. select子句 14.6. 聚集函数 14.7. 多态查询 14.8. where子句 14.9....

    HibernateAPI中文版.chm

    14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接(Join) 14.4. join 语法的形式 14.5. select子句 14.6. 聚集函数 14.7. 多态查询 14.8. where子句 14.9....

    Hibernate实战(第2版 中文高清版)

     5.1.2 每个带有联合的具体类一张表   5.1.3 每个类层次结构一张表   5.1.4 每个子类一张表   5.1.5 混合继承策略   5.1.6 选择策略   5.2 Hibernate类型系统   5.2.1 概述实体和值类型   5.2.2 内建...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     3.1 创建Hibernate的配置文件  3.2 创建持久化类  3.3 创建数据库Schema  3.4 创建对象-关系映射文件  3.4.1 映射文件的文档类型定义(DTD)  3.4.2 把Customer持久化类映射到CUSTOMERS表  3.5 通过...

    Hibernate 中文 html 帮助文档

    14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接(Join) 14.4. join 语法的形式 14.5. select子句 14.6. 聚集函数 14.7. 多态查询 14.8. where子句 14.9. 表达式 ...

    Hibernate中文详细学习文档

    14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接(Join) 14.4. join 语法的形式 14.5. select子句 14.6. 聚集函数 14.7. 多态查询 14.8. where子句 14.9....

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接(Join) 14.4. join 语法的形式 14.5. select子句 14.6. 聚集函数 14.7. 多态查询 14.8. where子句 14.9....

    最全Hibernate 参考文档

    14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接(Join) 14.4. select子句 14.5. 聚集函数 14.6. 多态查询 14.7. where子句 14.8. 表达式 14.9. order by子句 ...

    hibernate 体系结构与配置 参考文档(html)

    14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接(Join) 14.4. join 语法的形式 14.5. select子句 14.6. 聚集函数 14.7. 多态查询 14.8. where子句 14.9....

    Hibernate教程

    15. HQL: Hibernate查询语言 15.1. 大小写敏感性问题 15.2. from子句 15.3. 关联(Association)与连接(Join) 15.4. select子句 15.5. 聚集函数 15.6. 多态查询 15.7. where子句 15.8. 表达式 15.9. order by...

    hibernate 教程

    Hibernate查询语言(Query Language), 即HQL 11.1. 大小写敏感性(Case Sensitivity) 11.2. from 子句 11.3. 联合(Associations)和连接(joins) 11.4. select子句 11.5. 统计函数(Aggregate ...

    Hibernate3的帮助文档

    详细的Hibernate3的帮助文档 前言 1. 翻译说明 2. 版权声明 1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. Hibernate入门 2.1. 前言 2.2. ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     3.1 创建Hibernate的配置文件  3.2 创建持久化类  3.3 创建数据库Schema  3.4 创建对象-关系映射文件  3.4.1 映射文件的文档类型定义(DTD)  3.4.2 把Customer持久化类映射到CUSTOMERS表  3.5 通过...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     3.1 创建Hibernate的配置文件  3.2 创建持久化类  3.3 创建数据库Schema  3.4 创建对象-关系映射文件  3.4.1 映射文件的文档类型定义(DTD)  3.4.2 把Customer持久化类映射到CUSTOMERS表  3.5 通过...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     3.1 创建Hibernate的配置文件  3.2 创建持久化类  3.3 创建数据库Schema  3.4 创建对象-关系映射文件  3.4.1 映射文件的文档类型定义(DTD)  3.4.2 把Customer持久化类映射到CUSTOMERS表  3.5 通过...

    Hibernate3+中文参考文档

    14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接(Join) 14.4. select子句 14.5. 聚集函数 14.6. 多态查询 14.7. where子句 14.8. 表达式 14.9. order by子句 ...

    hibernate3.04中文文档.chm

    15. HQL: Hibernate查询语言 15.1. 大小写敏感性问题 15.2. from子句 15.3. 关联(Association)与连接(Join) 15.4. select子句 15.5. 聚集函数 15.6. 多态查询 15.7. where子句 15.8. 表达式 15.9. order by...

    hibernate 框架详解

    15. HQL: Hibernate查询语言 15.1. 大小写敏感性问题 15.2. from子句 15.3. 关联(Association)与连接(Join) 15.4. select子句 15.5. 聚集函数 15.6. 多态查询 15.7. where子句 15.8. 表达式 15.9. order ...

Global site tag (gtag.js) - Google Analytics