我有一个从表中检索数据并在java.util.List中返回数据的方法,我需要多次调用该方法,所以我只想调用它一次,并将所有数据放到java.util.Map中,如何做到这一点?
我的方法实际上是:
private List<?> getAll(final Class objClass, final Integer parentId) {
Session session = sessionFactory.getCurrentSession();
Criteria criteria = session.createCriteria(objClass);
if (parentId != null) {
criteria.add(Restrictions.eq("tab.parent", parentId));
}
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
return (List<?>) criteria.list();
}我怎样才能得到像HashMap一样的HashMap<parentId,List<?>>
谢谢
发布于 2017-05-10 17:55:48
根据堆栈溢出answer
我认为这是不可能的,因为查询总是返回一个列表:http://docs.jboss.org/hibernate/orm/3.2/api/org/hibernate/Criteria.html#list()或在特殊情况下返回单个元素。 没有任何方法可以返回地图。 因此,如果没有像覆盖会话这样的黑客操作来创建一个特殊的条件(其中也有map()方法),您就不能做您想做的事情。
只需返回一个列表并将其转换为一张地图。
https://stackoverflow.com/questions/43892694
复制相似问题