我只能看到hibernate中查询类中的list方法。如何在hibernate中直接从查询中获取set或数组?
Query q = session.createQuery("from com.daasl.Person");
List<Person> l = q.list();
有没有办法可以直接设置或数组而不是列表?
答案 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);