@SuppressWarnings("rawtypes") protected List cacheLoadOrStore(List<Object> loadedObjects) { if (loadedObjects.isEmpty()) { return loadedObjects; } if (!(loadedObjects.get(0) instanceof Entity)) { return loadedObjects; } List<Entity> filteredObjects = new ArrayList<>(loadedObjects.size()); for (Object loadedObject : loadedObjects) { Entity cachedEntity = cacheLoadOrStore((Entity) loadedObject); filteredObjects.add(cachedEntity); } return filteredObjects; }
@SuppressWarnings({ "rawtypes", "unchecked" }) public List selectListWithRawParameter(String statement, Object parameter, boolean useCache) { statement = dbSqlSessionFactory.mapStatement(statement); List loadedObjects = sqlSession.selectList(statement, parameter); if (useCache) { return cacheLoadOrStore(loadedObjects); } else { return loadedObjects; } }
public Object selectOne(String statement, Object parameter) { statement = dbSqlSessionFactory.mapStatement(statement); Object result = sqlSession.selectOne(statement, parameter); if (result instanceof Entity) { Entity loadedObject = (Entity) result; result = cacheLoadOrStore(loadedObject); } return result; }