/**
 * Find object by primary key.
 * Propel uses the instance pool to skip the database if the object exists.
 * Go fast if the query is untouched.
 *
 * <code>
 * $obj = $c->findPk(array(12, 34, 56), $con);
 * </code>
 *
 * @param array $key Primary key to use for the query
                     A Primary key composition: [$object_id, $language_id, $revision]
 * @param     PropelPDO $con an optional connection object
 *
 * @return   LanguageObjectHistory|LanguageObjectHistory[]|mixed the result, formatted by the current formatter
 */
 public function findPk($key, $con = null)
 {
     if ($key === null) {
         return null;
     }
     if (null !== ($obj = LanguageObjectHistoryPeer::getInstanceFromPool(serialize(array((string) $key[0], (string) $key[1], (string) $key[2])))) && !$this->formatter) {
         // the object is already in the instance pool
         return $obj;
     }
     if ($con === null) {
         $con = Propel::getConnection(LanguageObjectHistoryPeer::DATABASE_NAME, Propel::CONNECTION_READ);
     }
     $this->basePreSelect($con);
     if ($this->formatter || $this->modelAlias || $this->with || $this->select || $this->selectColumns || $this->asColumns || $this->selectModifiers || $this->map || $this->having || $this->joins) {
         return $this->findPkComplex($key, $con);
     } else {
         return $this->findPkSimple($key, $con);
     }
 }
 /**
  * Retrieve object using using composite pkey values.
  * @param   int $object_id
  * @param   string $language_id
  * @param   int $revision
  * @param      PropelPDO $con
  * @return LanguageObjectHistory
  */
 public static function retrieveByPK($object_id, $language_id, $revision, PropelPDO $con = null)
 {
     $_instancePoolKey = serialize(array((string) $object_id, (string) $language_id, (string) $revision));
     if (null !== ($obj = LanguageObjectHistoryPeer::getInstanceFromPool($_instancePoolKey))) {
         return $obj;
     }
     if ($con === null) {
         $con = Propel::getConnection(LanguageObjectHistoryPeer::DATABASE_NAME, Propel::CONNECTION_READ);
     }
     $criteria = new Criteria(LanguageObjectHistoryPeer::DATABASE_NAME);
     $criteria->add(LanguageObjectHistoryPeer::OBJECT_ID, $object_id);
     $criteria->add(LanguageObjectHistoryPeer::LANGUAGE_ID, $language_id);
     $criteria->add(LanguageObjectHistoryPeer::REVISION, $revision);
     $v = LanguageObjectHistoryPeer::doSelect($criteria, $con);
     return !empty($v) ? $v[0] : null;
 }