title: Construct or validation does not work when I embed an entity with sonata_type_admin
body: <p>I have an entity 'Employee' and I embed an entity 'User' with 'sonata_type_admin' form type (one to one relation).
  When I create a new Employee object I want to set default values to User object, but User __construct() or getNewInstance() method is never called.
  I also noticed that user validation constraints don't work when I edit an Employee (for instance, if I edit an employee and I try to set an username that already exists, validation constraint is not displayed on username field). If I edit an user, __construct(), getNewInstance() and validation constraints works fine.</p>
  
  <p>What can I do?</p>
  
  <p>I extended my user entity from SonataUserBundle (FOSUserBundle).</p>
  
  <pre><code>//User.orm.xml
  ...
      &lt;entity name="Application\Sonata\UserBundle\Entity\User" table="fos_user_user"&gt;
  
          &lt;id name="id" column="id" type="integer"&gt;
              &lt;generator strategy="AUTO" /&gt;
          &lt;/id&gt;
  
          &lt;one-to-one field="employee" target-entity="AppBundle\Entity\Employee" mapped-by="user" /&gt;
      &lt;/entity&gt;
  
  &lt;/doctrine-mapping&gt;
  </code></pre>
  
  <p>My Employee entity is in AppBundle.</p>
  
  <pre><code>//Employee.php
  namespace AppBundle\Entity;
  
  use Gedmo\Mapping\Annotation as Gedmo;
  use Gedmo\Timestampable\Traits\TimestampableEntity;
  use Doctrine\ORM\Mapping as ORM;
  
  /**
   * Session
   *
   * @ORM\Table(name="nup_employee")
   * @ORM\Entity(repositoryClass="AppBundle\Entity\EmployeeRepository")
   */
  class Employee
  {
      const STATUS_INACTIVE = 0;
      const STATUS_ACTIVE = 1;
  
      use TimestampableEntity;
  
      /**
       * @var integer
       *
       * @ORM\Column(name="id", type="integer")
       * @ORM\Id
       * @ORM\GeneratedValue(strategy="AUTO")
       */
      private $id;
  
      /**
       * @ORM\OneToOne(
       *  targetEntity="Application\Sonata\UserBundle\Entity\User", 
       *  inversedBy="employee", 
       *  cascade={"persist", "remove"}
       * )
       * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=true, onDelete="SET NULL")
       */
      private $user;
  ...
  </code></pre>
  
  <p>My configureFormFields.</p>
  
  <pre><code>//UserAdmin.php
  ...
  protected function configureFormFields(FormMapper $formMapper)
      {
          $formMapper
              -&gt;with('General')
                  -&gt;add('username')
                  -&gt;add('email')
                  -&gt;add('plainPassword', 'text', array(
                      'required' =&gt; (!$this-&gt;getSubject() || is_null($this-&gt;getSubject()-&gt;getId()))
                  ))
              -&gt;end()
          ;
  
          $formMapper
              -&gt;with('Security')
                  -&gt;add('enabled', null, array('required' =&gt; false))
                  -&gt;add('locked', null, array('required' =&gt; false))
                  -&gt;add('token', null, array('required' =&gt; false))
                  -&gt;add('twoStepVerificationCode', null, array('required' =&gt; false))
              -&gt;end()
          ;
      }
  ...
  </code></pre>
  
  <p>Composer.json:</p>
  
  <pre><code>...
  "symfony/symfony": "2.7.*",
  ...
  "friendsofsymfony/user-bundle": "~1.3",
  "sonata-project/admin-bundle": "2.3.*",
  "sonata-project/doctrine-orm-admin-bundle": "2.3.*",
  "sonata-project/user-bundle": "^2.2"
  </code></pre>