我正在使用 Hibernate 开发一个 Spring Web 应用程序。从表中获取列值到列表时遇到错误。但是这个错误不断出现。请帮我放。提前致谢。
@Repository
@Transactional
public class GetProjectsDaoImpl implements GetProjectsDao {
@Autowired
private HibernateUtilImpl hibernateutilimpl;
public List<Projects> getProjects() {
String sql = "select project_id from project";
List<Object[]> projectObjects = hibernateutilimpl.fetchAll(sql);
List<Projects> projectsList = new ArrayList<Projects>();
for(Object[] projectObject: projectObjects) {
Projects project = new Projects();
String id = (String) projectObject[0];
project.setProjectId(id);
projectsList.add(project);
}
return projectsList;
}
}
@Repository
public class HibernateUtilImpl implements HibernateUtil {
@Autowired
private SessionFactory sessionFactory;
public <T> Serializable create(final T entity) {
return sessionFactory.getCurrentSession().save(entity);
}
public <T> T update(final T entity) {
sessionFactory.getCurrentSession().update(entity);
return entity;
}
public <T> void delete(final T entity) {
sessionFactory.getCurrentSession().delete(entity);
}
@SuppressWarnings("rawtypes")
public <T> List<T> fetchAll(String query) {
return sessionFactory.getCurrentSession().createNativeQuery(query).list();
}
}
我有以下建议。第一个变化:
List<Object[]> projectObjects = hibernateutilimpl.fetchAll(sql);
至:
List<Object> projectObjects = hibernateutilimpl.fetchAll(sql);
接下来,更改:
for(Object[] projectObject: projectObjects) {
String id = (String) projectObject[0];
至
for(Object projectObject: projectObjects) {
String id = (String) projectObject;
需要进行上述更改,因为您只选择了一个列。Object[]
仅在选择多于一列时使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句