@Override
	public void addToListaDeDesejos(UsuarioProduto usuarioProduto) {

		EntityManagerFactory factory = Persistence
				.createEntityManagerFactory("classeEncanto");

		EntityManager em = beginTransaction(factory);

		Set<UsuarioProduto> listaDeDesejos = null;

		try {

			Usuario usuario = usuarioProduto.getUsuario();

			listaDeDesejos = findListaDeDesejos(usuario);

			if (!listaDeDesejos.contains(usuarioProduto)) {

				listaDeDesejos.add(usuarioProduto);
			}

			usuario.setListaDeDesejos(listaDeDesejos);

			usuarioDao.merge(usuario);

			usuarioProduto.setUsuario(usuario);

			em.getTransaction().commit();

		} catch (Exception e) {

			if (!e.getMessage().contains("duplicate key")) {

				e.printStackTrace();

				throw e;

			} else {

				listaDeDesejos.remove(usuarioProduto);
			}

		} finally {

			endTransaction(em, factory);
		}

	}