hql查询对象的全部属性和部分属性的区别

来源:互联网 发布:如何查询网络统考成绩 编辑:程序博客网 时间:2024/05/20 04:32

hql在查询对象的全部属性和部分属性时,在遍历结果集需要使用不同的方式:

①查询对象的全部属性

以查询学生的属性为例

List<Student> list = session.createQuery("from Student");

此时hibernate已经帮你完成了二次封装,list中存放的是Student对象,使用如下方式取出查询结果

for(Student s:list){

    system.out.println(s.getId() + "  " + s.getName());

}


②查询对象的部分属性(查询的属性不止一个)

List<Object[]> list = session.createQuery("select id, name from Student");

此时list中存放的是存放了两个Object对象的Object[]

for(Object[] objs:list){

    system.out.println(objs[0].toString() + "  " +objs[1].toString());

}


③查询对象的部分属性(查询的属性只有一个)

List<Object[]> list = session.createQuery("select name from Student");

或List<Object> list = session.createQuery("select name from Student");

此时如果使用②的遍历方式会报错,只能使用Object

for(Object obj:list){

    system.out.println(obj.toString());

}


List<Object[]> list = session.createQuery("select name from Student");

原创粉丝点击