/** * * @param Query $query * @param Storage $storage * @return \Application\Model\Bean\Bean */ public function getOneByQuery(Query $query, Storage $storage = null) { $storage = StorageFactory::create($storage); $key = "getOneByQuery:" . $query->createSql(); if ($storage->exists($key)) { $bean = $storage->load($key); } else { $bean = $this->getByQuery($query, $storage)->getOne(); $storage->save($key, $bean); } return $bean; }