public static Jeu creerJeu(Utilisateur utilisateur, String nom, String description, byte[] icone, String iconeType)
            throws ChampInvalideException, ChampVideException{
        if (utilisateur.getRole().getValeur() < Role.Utilisateur.getValeur())
            throw new InterditException("Vous devez être connecté pour créer un jeu");

        EntityTransaction transaction = JeuRepo.get().transaction();
        Jeu j;
        try {
            transaction.begin();
            Fichier f = null;
            if (icone != null && iconeType != null)
                f = FichierService.genererIcone(icone, iconeType);
            j = genererJeu(utilisateur, nom, description, f);
            JeuRepo.get().creer(j);

            transaction.commit();
        }
        catch(Exception e) {
            if (transaction.isActive())
                transaction.rollback();

            if (e instanceof ChampVideException)
                throw (ChampVideException)e;
            else if (e instanceof ChampInvalideException)
                throw (ChampInvalideException)e;
            else
                throw (RuntimeException)e;
        }
        return j;
    }