Doctrine 2 - ORM
  1. Doctrine 2 - ORM
  2. DDC-2455

Setting classes in the entity manager

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Invalid
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Security Level: All
    • Labels:

      Description

      I am creating my own bundle in Sf2 which will be used for third libraries, but I need to provide some simple and complex queries from this.
      For simple queries i have no problem because I set the repository with the class from the third library.
      Something like this:

      $this->repository = $this->em->getRepository($className);
      $result = $this->repository
      ->createQueryBuilder("c")
      ->select('c, d, e')
      ->join("c.groups", "d")
      ->join("d.users", "e")
      ->where("e.id = :userId")
      ->setParameter("userId", $userId);

      return $result->getQuery()->getResult();

      But when I need complex queries i have to work with the Entity Manager instead of working with the Repository. So tables are named as MyBundle (Group), but not how the third library named (sf_group). As a consequence the SQL throws an error saying that my table does not exist.
      This is how I am trying to retrieve:

      $query = $this->em->createQuery("SELECT p FROM Groups p");

      I sent the className as the entity to avoid this. Something like:

      $query = $this->em->createQuery("SELECT p FROM ".$this->className." p");

      However i need a lot of queries with JOINs, so i would have to change every entity name, which is not convenient.

      What another way could I implemment this?

      Thanks for your help.

        Activity

        Hide
        Benjamin Eberlei added a comment -

        This is a question for the mailinglist.

        createQueryBuilder() and createQuery() have exactly the same functionality. Just a different API. You can do the same with both.

        Show
        Benjamin Eberlei added a comment - This is a question for the mailinglist. createQueryBuilder() and createQuery() have exactly the same functionality. Just a different API. You can do the same with both.

          People

          • Assignee:
            Benjamin Eberlei
            Reporter:
            Petter Castro
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: