我发错了。
我的控制台错误是:
java.lang.ClassCastException:[Ljava.lang.Object;无法强制转换为modelAjax.ModeloAjax
我的代码是:
DAO
public List<ModeloAjax> findByMarca(Long marca) {
Session s = sf.getCurrentSession();
Query q = s.createQuery("select id, nombre from "+getEntityName()+" where marca_id="+marca);
List<?>modelos = q.list();
List<ModeloAjax> result = new ArrayList<ModeloAjax>(modelos.size());
for(Object o : modelos){
result.add((ModeloAjax) o);
}
return result;
}
我该怎么做才能解决错误?
答案 0 :(得分:1)
您正在将Object []投射到ModeloAjax。此数组包含2项id和nombre项目。
您需要像这样编码:
Query q = s.createQuery("select e from " + getEntityName() + " e where e.marca_id = " + marca);
注意:您想保留您的查询。你必须这样做:
for(Object o : modelos ) {
Object[] record = (Object[])o;
// record[0] = id
// record[1] = nombre
// Convert record to ModeloAjax
}
答案 1 :(得分:1)
Query q = s.createQuery("select id, nombre from "+getEntityName()+" where marca_id="+marca).addEntity(ModeloAjax.class);
将返回ModeloAjax对象列表中的db值。