de um para muitos. Exemplo: /** * @ORM\OneToMany(targetEntity="Product", mappedBy="category") */ private $products; public function __construct() { $this->products = new ArrayCollection(); }
$em ->createQuery(“SELECT p FROM Product p”) ->getResult(); // Busca por repositório $result = $em->getRepository(“Product”)->findAll(); A consulta retornará objetos da entidade “Product”.
as category_name FROM Product p JOIN p.category c”) ->setParameter(‘nome_categoria’, ‘bebida’) ->getResult(); A consulta retornará um array com nome do produto, preço do produto e nome da categoria.
ser utilizado o objeto de entidade. Exemplo de inserção: $category = new Category(); $category->setName(‘bebida’); $em->persist($category); $em->flush(); Exemplo de atualização: $category = $em->getRepository(“Category”)->find(1); $category->setName(‘bebida’); $em->flush();
as entidades, independente se possuirá métodos ou não; • Por definição da equipe do Doctrine, repositórios deverão possuir apenas métodos que realizem buscas.
function buscaProdutosPorCategoria($nomeCategoria) { return $em->createQuery(“SELECT p FROM Products p JOIN p.category c WHERE c.name = :nome_categoria”) ->setParameter(‘nome_categoria’, $nomeCategoria) ->getResult(); } }
a entidade em memória. Sempre que realizar procedimentos onde trabalhe com muitas entidades, tire da memória as quais não serão mais utilizadas. Exemplo //Remove da memória somente a entidade armazenada na variável $em->detach($product); //Remove todas as entidades da memória $em->clear();