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]