/** * Get the associated BatchJob object * * @param PropelPDO Optional Connection object. * @return BatchJob The associated BatchJob object. * @throws PropelException */ public function getBatchJob(PropelPDO $con = null) { if ($this->aBatchJob === null && $this->batch_job_id !== null) { $this->aBatchJob = BatchJobPeer::retrieveByPk($this->batch_job_id); /* The following can be used additionally to guarantee the related object contains a reference to this object. This level of coupling may, however, be undesirable since it could result in an only partially populated collection in the referenced object. $this->aBatchJob->addBatchJobLockSuspends($this); */ } return $this->aBatchJob; }
/** * @param int $id * @param kExclusiveLockKey $lockKey * @param BatchJob $object * @return BatchJob */ public static function updateExclusive($id, kExclusiveLockKey $lockKey, BatchJob $object) { $c = new Criteria(); $c->add(BatchJobLockPeer::ID, $id); $c->add(BatchJobLockPeer::SCHEDULER_ID, $lockKey->getSchedulerId()); $c->add(BatchJobLockPeer::WORKER_ID, $lockKey->getWorkerId()); $c->add(BatchJobLockPeer::BATCH_INDEX, $lockKey->getBatchIndex()); $db_lock_object = BatchJobLockPeer::doSelectOne($c); if (!$db_lock_object) { throw new APIException(APIErrors::UPDATE_EXCLUSIVE_JOB_FAILED, $id, $lockKey->getSchedulerId(), $lockKey->getWorkerId(), $lockKey->getBatchIndex(), print_r($db_lock_object, true)); } if ($db_lock_object) { $db_object = $db_lock_object->getBatchJob(); } else { $db_object = BatchJobPeer::retrieveByPk($id); } baseObjectUtils::fillObjectFromObject(BatchJobPeer::getFieldNames(), $object, $db_object, baseObjectUtils::CLONE_POLICY_PREFER_NEW, null, BasePeer::TYPE_PHPNAME); $db_object->save(); return $db_object; }