我正在创建一个本机查询并获取结果列表,但我想在标签中显示该错误,但出现了错误
private void requestsButtonClicked() {
try {
String l_query = "";
l_query = "SELECT * from tablename";
Controller controller = new Controller(ui.getDbConnection());
List<RequestBean> l_list = l_ric.getNativeQueryResult(l_query, RequestBean.class);
m_requestResultNumber.setCaption(l_list.size() + "");
} catch (Exception e) {
m_logger.error("CATCH", e);
org.ids.geoais.common.Process.showErrorMessage(m_RefGeoAISui, e);
}
}
这是用于本机查询的方法
public <T> List<T> getNativeQueryResult(String p_query, Class<T> p_class) throws Exception {
m_logger.debug("BaseController::getNativeQueryResult()");
// TODO Auto-generated method stub
m_logger.debug("SQL = " + p_query);
List<T> l_returnList = new ArrayList<T>();
EntityManager l_em = m_connectionInstance.getEntityManager();
Query l_query = l_em.createNativeQuery(p_query);
for (Object l_obj : l_query.getResultList()) {
if (null != l_obj) {
if (p_class.isAssignableFrom(l_obj.getClass())) {
l_returnList.add(p_class.cast(l_obj));
} else {
m_logger.warn("Cannot cast the object of type " + l_obj.getClass().getName() + " to object of type " + p_class.getName());
}
} else {
m_logger.warn("Search object in get query result is NULL");
}
}
return l_returnList;
}
错误:[2016-04-06 11:51:38,406]-警告-(db.BaseController)-无法转换类型为[Ljava.lang.Object; 到backend.bean类型的对象[2016-04-06 11:51:38,406]-警告-(db.BaseController)-无法转换类型为[Ljava.lang.Object; 到类型为backend.bean的对象[2016-04-06 11:51:38,406]-警告-(db.BaseController)-无法转换类型为[Ljava.lang.Object; 到类型backend.bean的对象
您似乎在此调用中忽略了实体类型:
Query l_query = l_em.createNativeQuery(p_query);
尝试一下
Query l_query = l_em.createNativeQuery(p_query, p_class);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句