Doctrine 2 ManyToMany en cascada

¿Es posible en Doctrine 2 crear dos objetos que estén relacionados de muchos a muchos y que la llamada persista solo en uno de ellos para guardar ambos?

Entidad de usuario:

    /**
 * Owning Side
 *
 * @ManyToMany(targetEntity="Role", inversedBy="users", cascade={"persist"})
 * @JoinTable(name="user_roles",
 *      joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
 *      inverseJoinColumns={@JoinColumn(name="role_id", referencedColumnName="id")}
 *      )
 */
public $roles;

Entidad de rol:

    /**
 * Inverse Side
 *
 * @ManyToMany(targetEntity="User", mappedBy="roles")
 */
public $users;

Ahorro

    $role = new Role();

    $user = new User();

$user->roles->add($role);
$role->users->add($user);

$em->persist($user);
$em->flush();

No funciona y muestra un error "Se encontró una nueva entidad a través de una relación que no se configuró para operaciones de persistencia en cascada: Entidades \ Rol @ 0000000004a29c11000000005c48cb75. Persiste explícitamente la nueva entidad o configure operaciones de persistencia en cascada en la relación".

Respuestas a la pregunta(1)

Su respuesta a la pregunta