title: one-to-many in SonataUser Bundle
body: <p>Is there a less hacky way?</p>
  
  <p>I need to clear/set some one-to-many relationship, without remove orphans, default behavior doesn't remove neither add related entities, after submit all remains the same.</p>
  
  <p>/.../UserBundle/Admin/OrganizacionAdmin.php
  ....</p>
  
  <pre><code>public function prePersist($organizacion)
  {
      $this-&gt;preUpdate($organizacion,true);
  }
  
  
  public function preUpdate($organizacion,$agregar=false)
  {
      $organizacion-&gt;setDependencias($organizacion-&gt;getDependencias());
      foreach($organizacion-&gt;getDependencias() as $dependencia){
          $dependencia-&gt;setOrganizacion($organizacion);
      }
      if($agregar===false){
          $repositorio=$this-&gt;getConfigurationPool()-&gt;getContainer()-&gt;get('doctrine')-&gt;getRepository('GoproUserBundle:Dependencia');
          $dependenciasRepositorio=$repositorio-&gt;findBy(['organizacion'=&gt;$organizacion-&gt;getId()]);
  
          foreach($dependenciasRepositorio as $dr):
              if(!$organizacion-&gt;getDependencias()-&gt;contains($dr)){
                  $dr-&gt;setOrganizacion(null);
              }
          endforeach;
  
      }
  
  }
  </code></pre>
  
  <p>/.../UserBundle/Admin/OrganizacionAdmin.php</p>
  
  <pre><code>/**
   * @ORM\OneToMany(targetEntity="Dependencia", mappedBy="organizacion", cascade={"persist"})
   */
  protected $dependencias;
  
  public function setDependencias($dependencias)
  {
      if (count($dependencias) &gt; 0) {
          foreach ($dependencias as $dependencia) {
              $this-&gt;addDependencia($dependencia);
          }
      }
      return $this;
  }
  </code></pre>
  
  <p>/.../UserBundle/Admin/DependenciaAdmin.php</p>
  
  <pre><code>/**
   * @ORM\ManyToOne(targetEntity="Organizacion", inversedBy="dependencias")
   */
  protected $organizacion;
  </code></pre>