[英]Cast list<Object> to an ArrayList
我有一個錯誤的演員表。
我的控制台的錯誤是:
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;
}
我該如何解決該錯誤?
您正在將Object []轉換為ModeloAjax。 此數組包含id和nombre的2個項目。
您需要這樣的代碼:
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
}
Query q = s.createQuery("select id, nombre from "+getEntityName()+" where marca_id="+marca).addEntity(ModeloAjax.class);
將返回ModeloAjax對象列表中的db值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.