/**
  * Performs a deletion of persisten objects.
  *
  * @return int
  */
 function delete()
 {
     $deleteQuery = new DeleteQuery($this->entity->getPhysicalSchema()->getTable());
     $deleteQuery->setCondition($this->toExpression());
     $affected = $this->entity->getDao()->executeQuery($deleteQuery);
     return $affected;
 }
 /**
  * @param IQueryable $entity entity to use as base when guessing path to queried properties
  * @param string $alias optional table label
  */
 function __construct(IQueryable $entity, $alias = null)
 {
     Assert::isScalarOrNull($alias);
     $this->entity = $entity;
     $this->table = $entity->getPhysicalSchema()->getTable();
     $this->alias = $alias ? $alias : $this->table;
     $this->registeredIds[$this->table] = true;
     if ($alias) {
         $this->registeredIds[$alias] = true;
     }
     $this->joins[] = new SelectQuerySource(new AliasedSqlValueExpression(new SqlIdentifier($this->table), $alias));
 }
Example #3
0
 /**
  * @param DB $db RDBMS to use
  * @param IQueryable $entity ORM-related entity representation
  */
 function __construct(DB $db, IQueryable $entity)
 {
     $this->db = $db;
     $this->entity = $entity;
     $this->map = $entity->getMap();
     $this->logicalSchema = $entity->getLogicalSchema();
     $this->physicalSchema = $entity->getPhysicalSchema();
     $this->identifier = $this->logicalSchema->getIdentifier();
     if ($this->identifier) {
         $this->identityMap = new OrmIdentityMap($this->logicalSchema);
     }
 }
 function fill(SelectQuery $selectQuery, EntityQueryBuilder $entityQueryBuilder)
 {
     foreach ($this->entity->getPhysicalSchema()->getFields() as $field) {
         $this->fillField($field, $selectQuery, $entityQueryBuilder);
     }
 }