IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

Problème de dialect


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Par défaut Problème de dialect
    Salut tt le monde,

    Je suis entrain de réaliser une application J2EE.J'utilise Struts,hibernate et Myeclipse.Mon problème est le suivant:

    Lorsque j'ai crée une requète avec la fonction d'agrégation SUM(),une erreur lié au dialect m'a été générée ,alors j'ai résolu le prob en ajoutant une classe qui prend en charge les fct d'agrégation et qui est la suivate:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class MMySQLDialect extends MySQLDialect {
     
    	public MMySQLDialect() {
    		super();
    		registerHibernateType(Types.DECIMAL, Hibernate.DOUBLE.getName() );
    		}
     
     
     
    }
    Et tout marchait bien sous console Pour les fonctions utilisant le SUM() et en meme temps lorsque j'exécutais mon application avec apach (mais avec aucune action utilisant une fonction ou il y'a le SUM)ça marchait.Ce soir j'ai voulu ajouté l'action mapping utilisant une fonction d'agrégation pour pouvoir l'executer avec interface graphique et non pas sous console .Mais la j'ai été déçu parce que toute l'application ne travail plus,Je narrive mm pas à passer de la page d'authentification.L'erreur qui m'a été affichée est :




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.NoSuchMethodError: org.hibernate.dialect.MMySQLDialect.registerHibernateType(ILjava/lang/String;)V

  2. #2
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Par défaut
    Voici mon fichier de mapping hibernate.cfg.xml:


    <?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

    <!-- Generated by MyEclipse Hibernate Tools. -->
    <hibernate-configuration>

    <session-factory>
    <property name="connection.username">root</property>
    <property name="connection.url">jdbc:mysql://localhost:3306/g_atlas</property>
    <property name="dialect">org.hibernate.dialect.MMySQLDialect</property>


    <property name="myeclipse.connection.profile">Myconnection</property>
    <property name="connection.password">root</property>
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <mapping resource="com/myeclipse/hibernate/Utilisateur.hbm.xml" />
    <mapping resource="com/myeclipse/hibernate/Conge.hbm.xml" />
    <mapping resource="com/myeclipse/hibernate/Profil.hbm.xml" />
    <mapping resource="com/myeclipse/hibernate/Cv.hbm.xml" />


    </session-factory>

    </hibernate-configuration>


    SVP aider moi si c'est possible,je suis coinsée.J'ai perdu tout mon travail.

    Merci d'avance.

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    t'as probablement changé de version d'hibernate en passant d'un serveur à l'autre et tu te retrouve sur une version où la méthode que tu utilisait n'existe pas / plus. Solution: garde la meme version d'hibernate que celle qui fonctionnait.

  4. #4
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Par défaut
    J'ai pas changé de version d'hibernate.J'ai juste ajouter une classe qui herite du dialecte ancien sans rien changer de sans ancien contenu et je l'ai utilisé comme dialecte dans le fichier hibernate.cfg.xml.

  5. #5
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Par défaut
    J'ai réussi à préciser ou se trouve exactement le problème.

    Dans le fichier hibernate.cfg.xml j'avais le code suivant :

    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    et puisque j'ai ajouté une nouvelle classe qui est MMySQLDialect et qui contient tout le contenu de l'ancienne "MySQLDialect "+ integration des fonctions d'agrégation dont j'ai besoin,J'ai remplacé le code ci dessus par:


    <property name="dialect">org.hibernate.dialect.MMySQLDialect</property>
    et ça ne marchait plus.Mais,mnt lorsque j'ai rendu le code comme il était mon application a fonctionné mais sans pouvoir utiliser de requete ou il y'a une fonction d'agrégation.

    est ce que quelqu'un a une idée par quoi pourai je remplacer ce code pour que j'arrive à fonctionner ttes les requetes?????!!!!!

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    un no suchmethoderror se produit presque systématiquement lorsqu'il y a du mélangeage de version. Si la version d'hibernate que tu as utilisé pour compiler était la meme que celle que tu utilise en runtime, tu n'aurais soit pas d'erreur, soit tu aurais une erreur de compilation. Pour avoir un nosuchmethoderror, il faut que la méthode en question soit disponible lors de la compilation, mais pas lors de l'exécution. -> Vérifie les versions de tes jars.

Discussions similaires

  1. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  2. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  4. Réponses: 6
    Dernier message: 25/03/2002, 21h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo