Comment rollback transaction en JPA?

J'ai un EntityManager objet maintenu par le framework Spring et j'injecte dans n'importe quelle classe DAO je veux à l'aide de la @PersistenceContext annotation comme ça..

@PersistenceContext(unitName="entityManager")
private EntityManager em;

- Je utiliser ces classes DAO pour l'enregistrer dans la base de données de quelque chose comme ça..

class MyClass
{
    @Resource(name="myDao")
    private MyDao dao;

    @Resource(name="myAnotherDao")
    private MyAnotherDao anotherDao;

    public void save(String s1,String s2)
    {
        try
        {
             MyEntity m=new MyEntity();
             m.setName(s1);
             //.. and so on ..

             XYZ x=new XYZ();
             x.setDEF(s2);

             anotherDao.save(x);

             m.setXYZ(x);
             //.. some other stuff .. //
             dao.saveEntity(m);
         }
         catch(Exception e)
         {
             //I would like to rollback the transaction
         }
     }
}

Le daos ici utiliser le même EntityManager injecté par @PersistenceContext(unitName="entityManager"). Maintenant, si une exception se produit après setXYZ(), alors je voudrais reprendre la même enregistré XYZ entité. Mais, comment puis-je obtenir le EntityManager de qui?

Si tous les daos tenir le même objet, alors je peux juste d'appeler la getTransaction().rollback() méthode de la EntityManager classe? Le getTransaction() retour une nouvelle transaction ou toute transaction qui est actuellement associé à EntityManager?