/** * 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)); }
/** * @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); } }