我有一个泛型类型的DBHandler。我面临的问题是我无法将对象强制转换为类。令我困惑的是为什么我不能从get(0)中投出单个InstrumentOLS?
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.sg.info.InstrumentOLS
InstrumentOLS ols = (InstrumentOLS)listOLSvalues.get(0);
查询将返回正常但它包含一个Object列表。
List<InstrumentOLS> listOLSvalues = dbHandler.selectNativeListQuery("SELECT * FROM INSTRUMENTOLS");
public List<T> selectNativeListQuery(String sql) {
validateEntityManager();
Query query = em.createNativeQuery(sql);
List<T> listObj = query.getResultList();
return listObj;
}
答案 0 :(得分:1)
如Jon所述,我需要更新以发送InstrumentOLS课程。这使得返回类型变为InstrumentOLS而不是Object。
List<InstrumentOLS> listOLSvalues = dbHandler.selectNativeListQuery("SELECT * FROM SGWebNN.INSTRUMENTOLS", InstrumentOLS.class);
然后在通用DBHandler
中public List<T> selectNativeListQuery(String sql, Class aClass) {
validateEntityManager();
Query query = em.createNativeQuery(sql, aClass);
List<T> listObj = query.getResultList();
return listObj;
}