public function find($class, DataRequest $dataRequest)
    {
        try {
            $dataRequest->setSelectedFields(array('*'));
            
            $queryBuilder = $this->entityManager->getQueryBuilder();
            $this->entityManager->buildDataRequestQuery($dataRequest, $queryBuilder, $class, 'a');
            
            $accessEntities = $queryBuilder->getQuery()->getResult();
            if ($accessEntities == null) {
                return array();
            }
            
            foreach ($accessEntities as $accessEntity) {
                $this->loadPermissions($accessEntity);
            }
            
            return $accessEntities;
        } catch (\Exception $e) {
            throw new Exception('Cannot load the access entities for the given data request from the database.', 0, $e);
        }
    }