如何在hibernate中直接从查询中获取set或数组?

时间:2011-11-09 03:19:45

标签: hibernate

我只能看到hibernate中查询类中的list方法。如何在hibernate中直接从查询中获取set或数组?

 Query q = session.createQuery("from com.daasl.Person");
 List<Person> l = q.list();

有没有办法可以直接设置或数组而不是列表?

2 个答案:

答案 0 :(得分:1)

Query只能返回一个列表。

但您可以使用java标准toArray(T[] a)接口的Collection将通用列表转换为通用数组

 Query q = session.createQuery("from com.daasl.Person");
 List<Person> personList = q.list();
 Person[] personArray = personList .toArray((Person[])Array.newInstance(Person.class, personList .size()));

要将列表转换为集合,只需将列表提供给HashSet的构造函数

  Set<Person> personSet = new HashSet<Person>(personList);

答案 1 :(得分:1)

您可以使用以下代码将列表转换为数组。

String[] a = new String[list.size()];
list.toArray(a);