0

这是一个从数据库中检索结果列表的函数。

public List<util> deep(){
    Query query = getEntityManager().createNativeQuery("SELECT state,max(pop2010) from uscensuspopulationdata where state <> 0 ");
    List<util> l=   query.getResultList();  
    return l;
}

类实用程序:

public class  util{
    int state;
    int pop2010;

    public util(int state, int pop2010) {
        this.state = state;
        this.pop2010 = pop2010;
    }

    @Override
    public String toString() {
        return "util{" + "state=" + state + ", pop2010=" + pop2010 + '}';
    }
}

当我尝试提取这样的值时,我得到一个 ClassCastException:

List<util> l =  handle.deep();
for (util u : l) {
    out.print(u); 
}
4

1 回答 1

0

如果你想要一个util对象列表,你应该能够使用以下查询:

Query query = getEntityManager().createNativeQuery("SELECT new util(state,max(pop2010)) from uscensuspopulationdata where state <> 0 ");
List<util> l = query.getResultList();     

在哪里调用 util 的构造函数。此用例在 HQL 文档中指定。

如果uscensuspopulationdata是一个映射实体,你也不应该使用 aNativeQuery但你可以只使用getEntityManager().createQuery(...).

最后,Java 中将类的首字母大写被认为是一种很好的风格。

于 2012-10-10T23:00:10.747 回答