Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SELECT t.*
- FROM
- StateLogItem s NATURAL JOIN (
- SELECT
- task_id,
- MAX(
- COALESCE(updatedAt, createdAt)
- ) d,
- MAX(id) id
- FROM
- StateLogItem
- WHERE
- dtype = 'transitionlogitem'
- GROUP BY
- task_id
- ) m
- RIGHT JOIN Task t ON t.id = s.task_id
- WHERE s.toState = 'started';
- '20', 1, NULL, 'just because', '2014-07-18 10:49:00', NULL
- public function findByActionStatus($status){
- $sql = "SELECT t.id, t.description, t.created_by, t.updated_by, t.createdAt, t.updatedAt
- FROM StateLogItem s
- NATURAL JOIN (
- SELECT task_id, MAX(COALESCE(updatedAt,createdAt)) d, MAX(id) id
- FROM StateLogItem
- WHERE dtype = 'transitionlogitem'
- GROUP BY task_id
- ) m
- RIGHT JOIN Task t ON t.id=s.task_id
- WHERE s.toState = :status";
- $em = $this->getEntityManager();
- $rsm = new ResultSetMapping();
- $rsm->addEntityResult('ACCQueueBundle:Task', 't');
- $rsm->addFieldResult('t','t.id','id');
- $rsm->addFieldResult('t','t.created_by','createdBy');
- $rsm->addFieldResult('t','t.updated_by','updatedBy');
- $rsm->addFieldResult('t','t.description','description');
- $rsm->addFieldResult('t','t.createdAt','createdAt');
- $rsm->addFieldResult('t','t.updatedAt','updatedAt');
- $rsm->addJoinedEntityResult('ACCQueueBundle:TransitionLogItem','s','t','transitions'); //tried with and without
- $query = $em->createNativeQuery($sql,$rsm);
- $query->setParameter('status', $status);
- return $query->getResult();
- }
- namespace ACCQueueBundleEntity;
- use DoctrineORMMapping as ORM;
- use SymfonyComponentValidatorConstraints as Assert;
- use DoctrineCommonCollectionsArrayCollection;
- use ACCTraitsBlameableTrait;
- use ACCMainBundleEntityTraitsHasDocumentsTrait;
- use GedmoMappingAnnotation as Gedmo;
- use GedmoTimestampableTraitsTimestampableEntity;
- /**
- * Task
- * @ORMEntity(repositoryClass="ACCQueueBundleEntityTaskRepository")
- * @ORMHasLifecycleCallbacks()
- *
- */
- class Task {
- use HasDocumentsTrait;
- use BlameableTrait;
- use TimestampableEntity;
- /**
- * @var integer
- *
- * @ORMColumn(name="id", type="integer")
- * @ORMId
- * @ORMGeneratedValue(strategy="AUTO")
- */
- protected $id;
- /**
- * @var Transition
- *
- * @ORMOneToMany(targetEntity = "TransitionLogItem", mappedBy = "task", orphanRemoval = true, cascade = {"persist"})
- * @ORMOrderBy({"createdAt" = "ASC"})
- */
- protected $transitions;
- /**
- * @var Pause
- *
- * @ORMOneToMany(targetEntity = "PauseLogItem", mappedBy = "task", orphanRemoval = true, cascade = {"persist"})
- * @ORMOrderBy({"createdAt" = "ASC"})
- */
- protected $pauses;
- /**
- * @var string
- *
- * @ORMColumn(name="description", type="text")
- */
- protected $description;
- /**
- * @ORMManyToMany(targetEntity = "ACCMainBundleEntityDocument", cascade={"persist","remove"})
- * @ORMJoinTable(name="Task_Document",
- * joinColumns={@ORMJoinColumn(name="task_id", referencedColumnName="id")},
- * inverseJoinColumns={@ORMJoinColumn(name="document_id", referencedColumnName="id", unique=true)})
- */
- protected $documents;
- //etc.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement