Hibernate多表联查时,手动将结果集转化成JSON

今晚踩了一个坑,在此记录一下:

先看数据库,我们一共用3张表:

1、taone:

Hibernate多表联查时,手动将结果集转化成JSON_第1张图片

2、tatwo:

Hibernate多表联查时,手动将结果集转化成JSON_第2张图片

3、tathree:

Hibernate多表联查时,手动将结果集转化成JSON_第3张图片


我们的目标是:

Hibernate多表联查时,手动将结果集转化成JSON_第4张图片

SQL语句:

select a.age,b.name,c.sex 
from taone a,tatwo b,tathree c
where a.id = b.id and b.age = c.age;


Java中用hibernate的代码是:

public static List findbyid() {
		Session session = null;
		Transaction ta = null;
		try {
			session = HibernateSessionFactory.getSession();
			ta = session.beginTransaction();
			String hql = "select a.age,b.name,c.sex ";
			String sql = " from Taone a,Tatwo b,Tathree c "
					+ " where a.id = b.id and b.age = c.age  ";
			Query query = session.createQuery(hql+sql);
			System.out.println("query.list().size()="+query.list().size());
			 List objects = query.list();
			 System.out.println("objects.size()="+objects.size());
			 List mylist = new LinkedList();
			 NameBean ab;
             for(Object[] object:objects){  
            	 System.out.println(object.length);
            	 ab = new NameBean();
               ab.setAge((String) object[0]);
               ab.setName((String)object[1]);
               ab.setSex((String)object[2]);
               mylist.add(ab); 
             }  
			ta.commit();
			System.out.println(new Gson().toJson(mylist));
			return query.list();
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			ta.rollback();
			return null;
		}finally {
			if (session!=null) {
				session.close();				
			}
		}
	}


NameBean

public class NameBean {
	String age;
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	String name;
	String sex;
}

打完收工:

[{"age":"11        ","name":"a1        ","sex":"1         "},{"age":"22        ","name":"a2        ","sex":"2         "}]

在线解析一下:

[
    {
        "age": "11        ",
        "name": "a1        ",
        "sex": "1         "
    },
    {
        "age": "22        ",
        "name": "a2        ",
        "sex": "2         "
    }
]

你可能感兴趣的:(Java)