通过更好的优化从HQL查询返回地图

时间:2015-08-25 12:55:18

标签: java hql

您好我想使用HQL返回地图现在我有两个方法,一个消耗更少的内存或哪一个更好?

Query query = sessionFactory.getCurrentSession().createQuery("from UniwareTallySku");
    @SuppressWarnings("unchecked")
    List<UniwareTallySku> skuList = (List<UniwareTallySku>) query.list();

    for (UniwareTallySku list : skuList) {
        uniwareSkuVsTallySku.put(list.getUniwareSku(), list.getTallySku());
    }

    return uniwareSkuVsTallySku;

另一个是

Query query = sessionFactory.getCurrentSession().createQuery("select new map(table.columnname2 as c1, table.columnname3 as c2) from UniwareTallySku");

哪一个更好? 感谢帮助

1 个答案:

答案 0 :(得分:0)

我认为这是微观优化。除了可忽略不计的优化之外,您还在滥用Hibernate与手动查询。我是第一个方式。

永远不要在代码中手动编写查询。它们依赖于DB。并且还要避免使用HQL(如果可能的话, )。

尝试使用Criteria API