public function getPreparedConditions($pDbContainer)
    {
        $prepared = array();
        if (! empty($this->_conditions)) {
            foreach ($this->_conditions as $field => $condition) {
                $subPrepared = array();
                if (is_array($condition)) {
                    foreach ($condition as $type => $value) {
                        if (is_int($type) and is_array($value)) {
                            foreach ($value as $subField => $subCondition) {
                                if (is_array($subCondition)) {
                                    foreach ($subCondition as $type => $value) {
                                        $prefixedField = (stripos($subField, ItemInterface::PREFIX_SEPARATOR . ItemInterface::IDFIELD) !== false) ? $subField : $pDbContainer . ItemInterface::PREFIX_SEPARATOR . $subField;
                                        $subPrepared[] = $this->_processTypeCondition($prefixedField, $type, $value);
                                    }
                                } else {
                                    $prefixedField = (stripos($subField, ItemInterface::PREFIX_SEPARATOR . ItemInterface::IDFIELD) !== false) ? $subField : $pDbContainer . ItemInterface::PREFIX_SEPARATOR . $subField;
                                    $subPrepared[] = '`' . $prefixedField . '` = ?';
                                }
                            }
                        } else {
                            $prefixedField = (stripos($field, ItemInterface::PREFIX_SEPARATOR . ItemInterface::IDFIELD) !== false) ? $field : $pDbContainer . ItemInterface::PREFIX_SEPARATOR . $field;
                            $subPrepared[] = $this->_processTypeCondition($prefixedField, $type, $value);
                        }
                    }
                } else {
                    $prefixedField = (stripos($field, ItemInterface::PREFIX_SEPARATOR . ItemInterface::IDFIELD) !== false) ? $field : $pDbContainer . ItemInterface::PREFIX_SEPARATOR . $field;
                    $prepared[]    = '(`' . $prefixedField . '` = ?)';
                }

                if (! empty($subPrepared)) {
                    $prepared[] = '(' . implode(' ' . $this->getSubType() . ' ', $subPrepared) . ')';
                }
            }
        }

        return implode(' ' . $this->getType() . ' ', $prepared);
    }