public void edit(Permisos permisos)
     throws IllegalOrphanException, NonexistentEntityException, Exception {
   EntityManager em = null;
   try {
     em = getEntityManager();
     em.getTransaction().begin();
     Permisos persistentPermisos = em.find(Permisos.class, permisos.getUsuarioId());
     Usuario usuarioOld = persistentPermisos.getUsuario();
     Usuario usuarioNew = permisos.getUsuario();
     List<String> illegalOrphanMessages = null;
     if (usuarioNew != null && !usuarioNew.equals(usuarioOld)) {
       Permisos oldPermisosOfUsuario = usuarioNew.getPermisos();
       if (oldPermisosOfUsuario != null) {
         if (illegalOrphanMessages == null) {
           illegalOrphanMessages = new ArrayList<String>();
         }
         illegalOrphanMessages.add(
             "The Usuario "
                 + usuarioNew
                 + " already has an item of type Permisos whose usuario column cannot be null. Please make another selection for the usuario field.");
       }
     }
     if (illegalOrphanMessages != null) {
       throw new IllegalOrphanException(illegalOrphanMessages);
     }
     if (usuarioNew != null) {
       usuarioNew = em.getReference(usuarioNew.getClass(), usuarioNew.getId());
       permisos.setUsuario(usuarioNew);
     }
     permisos = em.merge(permisos);
     if (usuarioOld != null && !usuarioOld.equals(usuarioNew)) {
       usuarioOld.setPermisos(null);
       usuarioOld = em.merge(usuarioOld);
     }
     if (usuarioNew != null && !usuarioNew.equals(usuarioOld)) {
       usuarioNew.setPermisos(permisos);
       usuarioNew = em.merge(usuarioNew);
     }
     em.getTransaction().commit();
   } catch (Exception ex) {
     String msg = ex.getLocalizedMessage();
     if (msg == null || msg.length() == 0) {
       String id = permisos.getUsuarioId();
       if (findPermisos(id) == null) {
         throw new NonexistentEntityException("The permisos with id " + id + " no longer exists.");
       }
     }
     throw ex;
   } finally {
     if (em != null) {
       em.close();
     }
   }
 }
 public void create(Permisos permisos)
     throws IllegalOrphanException, PreexistingEntityException, Exception {
   List<String> illegalOrphanMessages = null;
   Usuario usuarioOrphanCheck = permisos.getUsuario();
   if (usuarioOrphanCheck != null) {
     Permisos oldPermisosOfUsuario = usuarioOrphanCheck.getPermisos();
     if (oldPermisosOfUsuario != null) {
       if (illegalOrphanMessages == null) {
         illegalOrphanMessages = new ArrayList<String>();
       }
       illegalOrphanMessages.add(
           "The Usuario "
               + usuarioOrphanCheck
               + " already has an item of type Permisos whose usuario column cannot be null. Please make another selection for the usuario field.");
     }
   }
   if (illegalOrphanMessages != null) {
     throw new IllegalOrphanException(illegalOrphanMessages);
   }
   EntityManager em = null;
   try {
     em = getEntityManager();
     em.getTransaction().begin();
     Usuario usuario = permisos.getUsuario();
     if (usuario != null) {
       usuario = em.getReference(usuario.getClass(), usuario.getId());
       permisos.setUsuario(usuario);
     }
     em.persist(permisos);
     if (usuario != null) {
       usuario.setPermisos(permisos);
       usuario = em.merge(usuario);
     }
     em.getTransaction().commit();
   } catch (Exception ex) {
     if (findPermisos(permisos.getUsuarioId()) != null) {
       throw new PreexistingEntityException("Permisos " + permisos + " already exists.", ex);
     }
     throw ex;
   } finally {
     if (em != null) {
       em.close();
     }
   }
 }