Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/05/2011, 07:49
RatoN7
 
Fecha de Ingreso: marzo-2010
Mensajes: 71
Antigüedad: 14 años
Puntos: 24
Consulas de Doctrine 2, UnitOfWork y Repositorios multiples

Hola buen dia.

Llevo algunos dias trabajando con Doctrine 2. Hice funcionar todo como debe ser pero tengo mis dudas.
Primero. Cuando tengo que actualizar algun registro lo clasico con Doctrine:
Código PHP:
Ver original
  1. //$this->_em = Entity Manager
  2. $newUser = $this->_em->find('User', $id);
  3. $newUser->setName('UserName');
  4. $this->_em->persist($newUser);
  5. $this->_em->flush();
Todo muy lindo, lo que no me agrada es el hecho de tener que primero buscar al usuario por id y luego grabarlo sabiendo que con estos datos se puede actualizar con una sola consulta. Incluso, si esta entidad contiene una relacion y quiero cambiarla tendria que hacer otro find() en busca de la entidad relacionada.

Tal vez no sea asi, llevo poco con Doctrine y tal vez el UnitOfWork no solo hace los persist() sino tambien los find()(ahorraria consultas). Tambien puede ser que haya alguna funcion de actualizacion que no conosca.
Por querer ahorrar consultas en la mayoria vengo usando DQL. jeje

Otra duda es sobre usar más de un repositorio por entidad. En algunas funciones de los repositorios veo que al usar la variable $this->_entityName podria usar esta misma funcion en cualquier entidad, puesto que esta variable se adaptaria a la entidad que la use. Entonces podria tener un repositorio especial para la entidad con funciones unicas de la entidad y otro que sea “default” con consultas comunes que sirvan en varias entidades. Creo que esto lo arreglo con una clase que extienda de EntityRepository, solamente consulto para saber si hay algo de Doctrine que no conosca y lo simplifique.

Gracias