@Override public List load(EntityInfo... entityInfos) { // no need to timeouManage here, the underlying loader is the real time consumer List results = new ArrayList(entityInfos.length); if (entityInfos.length == 0) { return results; } if (projectionEnabledOnThis(entityInfos[0])) { Loader objectLoader = getObjectLoader(); objectLoader.load(entityInfos); // load by batch for (EntityInfo entityInfo : entityInfos) { final Object entityInstance = objectLoader.loadWithoutTiming(entityInfo); entityInfo.populateWithEntityInstance(entityInstance); } } for (EntityInfo entityInfo : entityInfos) { if (transformer != null) { results.add(transformer.transformTuple(entityInfo.getProjection(), aliases)); } else { results.add(entityInfo.getProjection()); } } return results; }
@Override public Object load(EntityInfo entityInfo) { // no need to timeouManage here, the underlying loader is the real time consumer if (projectionEnabledOnThis(entityInfo)) { Loader objectLoader = getObjectLoader(); final Object entityInstance = objectLoader.load(entityInfo); entityInfo.populateWithEntityInstance(entityInstance); } if (transformer != null) { return transformer.transformTuple(entityInfo.getProjection(), aliases); } else { return entityInfo.getProjection(); } }
@Override protected List getResultList(List results, ResultTransformer resultTransformer) throws QueryException { // meant to handle dynamic instantiation queries...(Copy from QueryLoader) HolderInstantiator holderInstantiator = HolderInstantiator.getHolderInstantiator( null, resultTransformer, getReturnAliasesForTransformer()); if (holderInstantiator.isRequired()) { for (int i = 0; i < results.size(); i++) { Object[] row = (Object[]) results.get(i); Object result = holderInstantiator.instantiate(row); results.set(i, result); } return resultTransformer.transformList(results); } else { return results; } }