public void create(Usuario usuario) {
        if (usuario.getVendaList() == null) {
            usuario.setVendaList(new ArrayList<Venda>());
        }
        if (usuario.getReservaList() == null) {
            usuario.setReservaList(new ArrayList<Reserva>());
        }
        EntityManager em = null;
        try {
            em = getEntityManager();
            em.getTransaction().begin();
            List<Venda> attachedVendaList = new ArrayList<Venda>();
            for (Venda vendaListVendaToAttach : usuario.getVendaList()) {
                vendaListVendaToAttach = em.getReference(vendaListVendaToAttach.getClass(), vendaListVendaToAttach.getIdvenda());
                attachedVendaList.add(vendaListVendaToAttach);
            }
            usuario.setVendaList(attachedVendaList);
            List<Reserva> attachedReservaList = new ArrayList<Reserva>();
            for (Reserva reservaListReservaToAttach : usuario.getReservaList()) {
                reservaListReservaToAttach = em.getReference(reservaListReservaToAttach.getClass(), reservaListReservaToAttach.getIdreserva());
                attachedReservaList.add(reservaListReservaToAttach);
            }
            usuario.setReservaList(attachedReservaList);
            em.persist(usuario);
            for (Venda vendaListVenda : usuario.getVendaList()) {
                Usuario oldCodUsuarioOfVendaListVenda = vendaListVenda.getCodUsuario();
                vendaListVenda.setCodUsuario(usuario);
                vendaListVenda = em.merge(vendaListVenda);
                if (oldCodUsuarioOfVendaListVenda != null) {
                    oldCodUsuarioOfVendaListVenda.getVendaList().remove(vendaListVenda);
                    oldCodUsuarioOfVendaListVenda = em.merge(oldCodUsuarioOfVendaListVenda);
                }
            }
            for (Reserva reservaListReserva : usuario.getReservaList()) {
                Usuario oldCodUsuarioOfReservaListReserva = reservaListReserva.getCodUsuario();
                reservaListReserva.setCodUsuario(usuario);
                reservaListReserva = em.merge(reservaListReserva);
                if (oldCodUsuarioOfReservaListReserva != null) {
                    oldCodUsuarioOfReservaListReserva.getReservaList().remove(reservaListReserva);
                    oldCodUsuarioOfReservaListReserva = em.merge(oldCodUsuarioOfReservaListReserva);
                }
            }
            em.getTransaction().commit();
        } finally {
            if (em != null) {
                em.close();
            }
        }
    }