您好,我想使用 HQL 返回 map ,现在我有以下两种方法,哪种方法消耗更少的内存,或者哪种方法更好?
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");
哪个更好?? 感谢帮助
最佳答案
我觉得这是一个微观优化。除了可以忽略不计的优化之外,您还在手动查询中滥用 Hibernate。我选择第一种方式。
切勿在代码中手动编写查询。它们依赖于数据库。并且还要避免 HQL(如果可能)。
尝试使用Criteria API
关于java - 从 HQL 查询返回映射并进行更好的优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32204593/