public void destroy(Integer id) throws NonexistentEntityException {
   EntityManager em = null;
   try {
     em = getEntityManager();
     em.getTransaction().begin();
     Timereport timereport;
     try {
       timereport = em.getReference(Timereport.class, id);
       timereport.getIdtimereport();
     } catch (EntityNotFoundException enfe) {
       throw new NonexistentEntityException(
           "The timereport with id " + id + " no longer exists.", enfe);
     }
     Utilisateur idutilisateur = timereport.getIdutilisateur();
     if (idutilisateur != null) {
       idutilisateur.getTimereportCollection().remove(timereport);
       idutilisateur = em.merge(idutilisateur);
     }
     Tache idtache = timereport.getIdtache();
     if (idtache != null) {
       idtache.getTimereportCollection().remove(timereport);
       idtache = em.merge(idtache);
     }
     em.remove(timereport);
     em.getTransaction().commit();
   } finally {
     if (em != null) {
       em.close();
     }
   }
 }
 public void edit(Timereport timereport) throws NonexistentEntityException, Exception {
   EntityManager em = null;
   try {
     em = getEntityManager();
     em.getTransaction().begin();
     Timereport persistentTimereport = em.find(Timereport.class, timereport.getIdtimereport());
     Utilisateur idutilisateurOld = persistentTimereport.getIdutilisateur();
     Utilisateur idutilisateurNew = timereport.getIdutilisateur();
     Tache idtacheOld = persistentTimereport.getIdtache();
     Tache idtacheNew = timereport.getIdtache();
     if (idutilisateurNew != null) {
       idutilisateurNew =
           em.getReference(idutilisateurNew.getClass(), idutilisateurNew.getIdutilisateur());
       timereport.setIdutilisateur(idutilisateurNew);
     }
     if (idtacheNew != null) {
       idtacheNew = em.getReference(idtacheNew.getClass(), idtacheNew.getIdtache());
       timereport.setIdtache(idtacheNew);
     }
     timereport = em.merge(timereport);
     if (idutilisateurOld != null && !idutilisateurOld.equals(idutilisateurNew)) {
       idutilisateurOld.getTimereportCollection().remove(timereport);
       idutilisateurOld = em.merge(idutilisateurOld);
     }
     if (idutilisateurNew != null && !idutilisateurNew.equals(idutilisateurOld)) {
       idutilisateurNew.getTimereportCollection().add(timereport);
       idutilisateurNew = em.merge(idutilisateurNew);
     }
     if (idtacheOld != null && !idtacheOld.equals(idtacheNew)) {
       idtacheOld.getTimereportCollection().remove(timereport);
       idtacheOld = em.merge(idtacheOld);
     }
     if (idtacheNew != null && !idtacheNew.equals(idtacheOld)) {
       idtacheNew.getTimereportCollection().add(timereport);
       idtacheNew = em.merge(idtacheNew);
     }
     em.getTransaction().commit();
   } catch (Exception ex) {
     String msg = ex.getLocalizedMessage();
     if (msg == null || msg.length() == 0) {
       Integer id = timereport.getIdtimereport();
       if (findTimereport(id) == null) {
         throw new NonexistentEntityException(
             "The timereport with id " + id + " no longer exists.");
       }
     }
     throw ex;
   } finally {
     if (em != null) {
       em.close();
     }
   }
 }
 public void create(Timereport timereport) throws PreexistingEntityException, Exception {
   EntityManager em = null;
   try {
     em = getEntityManager();
     em.getTransaction().begin();
     Utilisateur idutilisateur = timereport.getIdutilisateur();
     if (idutilisateur != null) {
       idutilisateur = em.getReference(idutilisateur.getClass(), idutilisateur.getIdutilisateur());
       timereport.setIdutilisateur(idutilisateur);
     }
     Tache idtache = timereport.getIdtache();
     if (idtache != null) {
       idtache = em.getReference(idtache.getClass(), idtache.getIdtache());
       timereport.setIdtache(idtache);
     }
     em.persist(timereport);
     if (idutilisateur != null) {
       idutilisateur.getTimereportCollection().add(timereport);
       idutilisateur = em.merge(idutilisateur);
     }
     if (idtache != null) {
       idtache.getTimereportCollection().add(timereport);
       idtache = em.merge(idtache);
     }
     em.getTransaction().commit();
   } catch (Exception ex) {
     if (findTimereport(timereport.getIdtimereport()) != null) {
       throw new PreexistingEntityException("Timereport " + timereport + " already exists.", ex);
     }
     throw ex;
   } finally {
     if (em != null) {
       em.close();
     }
   }
 }