java - 将 Hibernate 查询结果存储到 Hashmap 中

标签 java hibernate collections hashmap

我想将 HQL 查询结果的名称和 ID 存储到 Hashmap 中。这是我的代码。有没有更好的方法呢?

    String hql = "FROM Student";
    Session session = HibernateUtil.getSessionFactory().openSession();
    Query query = session.createQuery(hql);
    List queryResults = query.list();
    List<Student> result = new ArrayList<Student>();

    Iterator it = queryResults.iterator();
    while (it.hasNext()) {
        Student student = (Student) it.next();
        result.add(student);
    }
    Map mapresult = new LinkedHashMap<Integer,String>();

    for (Student Maprslt : result)
        mapresult.put(Maprslt.getId(), Maprslt.getName());

最佳答案

您可以将它们全部放在一个 foreach 循环中,该循环旨在循环遍历 Iterable 或数组。

String hql = "FROM Student";
Session session = HibernateUtil.getSessionFactory().openSession();
Query query = session.createQuery(hql);
List queryResults = query.list();

Map<Integer,String> mapresult = new LinkedHashMap<>();
for (Object obj : queryResults) {
    Student student = (Student) obj;
    mapresult.put(student.getId(), student.getName());
}

关于java - 将 Hibernate 查询结果存储到 Hashmap 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38131427/

相关文章:

java - 同一应用服务器内可用的 REST API Java 微服务

java - (i == -i && i != 0) 的 i 值在 Java 中返回 true

java - 更改数组列表中对象的文本颜色

java - HibernateUtil 类的一个好的替代通用名称是什么?

database - 是否可以在 Dropwizard 中配置多个数据库连接?

java - 如何在大量单词中找到出现频率最高的单词(例如 900000)

java - 为什么有 <?在 java.util.Collections.unmodifiableList API 中扩展 T> 而不是 <T>

java - java中字符串xml节点内的转义xml字符

java - 创建在类路径资源 Spring/Hibernate 中定义的名称为 'sessionFactory' 的 bean 时出错

javascript - 如何显示一组 Canvas 中的图像?