public function findOneByCompoundKey(array $compoundKeyValues)
    {
        if (empty($compoundKeyValues)) {
            throw new \InvalidArgumentException(
                get_class($this) . '::compoundKeyValues must not be empty.',
                1354976660
            );
        }

        try {
            $model = $this->findOneByCompoundKeyFromCache($this->extractCompoundKeyValues($compoundKeyValues));
        } catch (\Tx_Oelib_Exception_NotFound $exception) {
            $model = $this->findSingleByWhereClause($compoundKeyValues);
        }

        return $model;
    }