hibernate查询问题

session.createCriteria(person.class).add(Restrictions.in("name", nameList)).list();

这句取的是表Person的List 我只需要字段name的List 上面语句还要怎么添加条件? :oops:

[quote]
如果一定要用hql,还想不可以,hql希望你把表当做一个对象
对于一个对象要整体查询,所以hql没有 select 什么,什么,什么 from 那
这种形式的
[/quote]

HQL怎么没有这种形式,楼主完全可以采用HQL来查询,如:

String hql = "select person.name from Person person";
这样返回的就是一个String类型的数组,里面的元素就是查询到的name值。

采用:session.createCriteria这种方式得到的都是实体对象结果。

得到Person的List 后再循环Person的List
[code="java"]
List nameList = new ArrayList();
for(Person p:personList){
nameList.add(p.getName());
}
[/code]

[size=medium]楼主不是文怎么循环list

他的意思是,怎么能通过hql语句只要表中的一个字段
如果一定要用hql,还想不可以,hql希望你把表当做一个对象
对于一个对象要整体查询,所以hql没有 select 什么,什么,什么 from 那
这种形式的

但是可以用sql实现嘛

如:[/size]
[code="java"]sql = "select p.name Person p where p.age:=age";
getHibernateTemplate().findByNamedParam(queryString, "age", age);[/code]

[size=medium]只后只要吧他强制转化位Object[]就可以啦

ps:
用回掉也可以实现的[/size]