hibernate 的一个简单问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 13:33:41
我有一个对象:

Java code
class User{
private int id;
private String name;
private int age;
//setter/getter...
}

其他配置都弄好了,我写查询的测试代码如下:

Java code
ProjectionList projectionList=Projections.projectionList();
projectionList.add(Projections.groupProperty("age"));
projectionList.add(Projections.rowCount());

criteria.setProjection(projectionList);

List list=criteria.list();
//-----------打印结果---------------
List list=criteria.list();
Iterator it1=list.iterator();
while(it1.hasNext()){

System.out.println(it1.next());
}

结果:Hibernate: select this_.age as y0_, count(*) as y1_ from quser this_ group by this_.age
[Ljava.lang.Object;@eaf40c
[Ljava.lang.Object;@13c6641
[Ljava.lang.Object;@5d391

Iterator it=list.iterator();
for(int i=0;it.hasNext();i++)
{
Object[] objs=(Object[])it.next();
for(int j=0;j<objs.length;j++)
{
System.out.println(""+objs[i].toString());
}
}

兄弟,,用这种方式试试看,,我以前碰到过这种情况,我问我导师他帮我解决的,,我没去调试了,,你自己可能要调试下,,我只能提供你这样的一种思路!!!!

用List的get()方法。

List list = session.createSqlQuery(sql).addEntity("",*.class).list;

可以用hql语句
String sql="select age from User"
Query query=new Query(hql);
int i=0;//用于纪录有多少条纪录
List<Integer> list=query.list();
for(int j=0;j<list.size;j++){
Integer age=list.get(i);
System.out.println("年龄: "+ age);
i++;
}
System.out.println("一共有"+i+"个人")

while(it1.hasNext()){
Object[] objs = (Object[])it.next();
objs[0] 是年龄
objs[1] 是你要的数量