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 :

[Hibernate 3 & postgres] problème guillemet et quote dans SQL


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 73
    Par défaut [Hibernate 3 & postgres] problème guillemet et quote dans SQL
    Bonjours,

    Je découvre hibernate.
    Je développe avec Eclipse et le plugin "hibernatesynctronizer".

    J'utilise hibernate 3 et j'ai l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
    J'utilise postgreSQL 8 avec le driver postgresql-8.1-409.jdbc3.jar
    en faite hibernate ne met pas les guillemet " autout des nom des tables et ne met pas les quotes ' autour des string.

    Peut être une option a activé, un autre dialect à prendre.

    Je voudrai bien un coup de main.

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 73
    Par défaut
    Il n'y a vraiment personne qui puisse m'aider?
    Please!

  3. #3
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Ben si tu pouvais être un peu plus précis sur l'erreur .... Donner un fichier de mapping et une classe et un bout de code en exemple ...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 73
    Par défaut
    Voilà un extrait de la sortie (hibernate.show_sql activé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    11:08:34,884  WARN JDBCExceptionReporter:77 - SQL Error: 0, SQLState: null
    11:08:34,884 ERROR JDBCExceptionReporter:78 - L'élément du batch 0 insert into INF_HostingSite (inf_name, inf_address, inf_description, inf_objectMiscellaneousInfo, vs_objectUID) values (testSylvain, 10.0.0.1, testSylvain, youpi, 3146) a été annulé. Appeler getNextException pour en connaître la cause.
    11:08:34,884  WARN JDBCExceptionReporter:77 - SQL Error: 0, SQLState: 42P01
    11:08:34,884 ERROR JDBCExceptionReporter:78 - ERROR: relation "inf_hostingsite" does not exist
    11:08:34,900 ERROR AbstractFlushingEventListener:301 - Could not synchronize database state with session
    org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
     
    .....
     
     
    Caused by: java.sql.BatchUpdateException: L'élément du batch 0 insert into INF_HostingSite (inf_name, inf_address, inf_description, inf_objectMiscellaneousInfo, vs_objectUID) values (testSylvain, 10.0.0.1, testSylvain, youpi, 3146) a été annulé. Appeler getNextException pour en connaître la cause.
    	at org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2512)
    Le nom de mes table et champ comporte des majuscules.
    CE qui semble c'est l'absence totale de gillemet et quote autour des nom et des valeurs...


    le fichier de mapping:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
    	"-//Hibernate/Hibernate Mapping DTD//EN"
    	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
     
    <hibernate-mapping package="test.hibernate">
    	<class
    		name="InfCluster"
    		table="INF_Cluster"
    	>
    		<meta attribute="sync-DAO">true</meta>
     
    		<meta attribute="sync-DAO">false</meta>
     
     
    		<id
    			name="VsObjectuid"
    			type="integer"
    			column="vs_objectUID"
    		>
    			<generator class="sequence"/>
    		</id>
    		<property
    			name="InfName"
    			column="inf_name"
    			type="string"
    			not-null="true"
    		/>
    		<property
    			name="InfSerial"
    			column="inf_serial"
    			type="string"
    			not-null="true"
    		/>
    		<many-to-one
    			name="InfPlatformuid"
    			column="inf_platformUID"
    			class="InfPlatform"
    			not-null="true"
    		>
    		</many-to-one>
    		<!--
    		<many-to-one
    			name="InfEquipmentclassuid"
    			column="inf_equipmentClassUID"
    			class="InfEquipmentclass"
    			not-null="true"
    		>
    		</many-to-one>
    -->
     
    	</class>	
    </hibernate-mapping>
    J'utilise les classes généré automatiquement par Hibernate Synchroniser.
    Et voici la classe de test:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    public class Test1 {
     
        public static void main(String[] args) throws Exception{
            Test1 mgr = new Test1();        
                mgr.createAndStoreSite();
        }
     
        private void createAndStoreSite() {
     
            Session session = HibernateUtil.currentSession();
     
            Transaction tx = session.beginTransaction();
            InfHostingsite site1 = new InfHostingsite();
            site1.setInfAddress("10.0.0.1");
            site1.setInfDescription("testChtiboss");
            site1.setInfName("testChtiboss");
            site1.setInfObjectmiscellaneousinfo("youpi");
            session.save(site1);
            tx.commit();
            HibernateUtil.closeSession();
        }
    }

  5. #5
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Par défaut
    Hello,
    Pour moi l'erreur suivante est pleine de sens:
    11:08:34,900 ERROR AbstractFlushingEventListener:301 - Could not synchronize database state with session
    Essaye donc de désactivier le BATCH SQL, j'ai déjà eu des problèmes avec lui, tu doit juste lettre dans ton fichier de config hibernate la propriété suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <property name="hibernate.jdbc.batch_size">0</property>

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 73
    Par défaut
    Ah! en faite l'erreur ne viens pas de là!
    J'ai trouvé c'était bien à cause des quotes.
    Il faut mettre les nom des colonnes et attribut entre backquote: comme ceci par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class
    		name="InfHostingsite"
    		table="`INF_HostingSite`"
    	>
    		<meta attribute="sync-DAO">true</meta>
     
    		<id
    			name="VsObjectuid"
    			type="integer"
    			column="`vs_objectUID`"
    		>
    .....
    Je ne trouve pas cela très pratique, d'autant plus que Hibernate Synchoniser ne gènère pas les back-quote. Et je n'ai pas vu d'option permettant de le faire.
    A moins qu'il soit possible de le faire avce les snippets? Mais je n'est pas vu où on pouvait les faire.
    Je pose maintenant une autre question. Comment on fait pour que Hibernate Synchroniser(le plugin d'eclipse) génère les fichier de mapping avec des back-quote?

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Problème de simple quote dans le champ de recherche
    Par mesken dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 29/03/2012, 10h05
  2. [MySQL] Problème des doubles quotes dans la base de données
    Par betadev dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 16/02/2012, 14h46
  3. Réponses: 3
    Dernier message: 21/12/2011, 16h39
  4. Problème avec une requête dans SQL-Server
    Par krolis dans le forum Développement
    Réponses: 6
    Dernier message: 09/01/2011, 21h53
  5. [SQL-Server] Problèmes de guillemets et quotes dans un INSERT
    Par gregb34 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/05/2006, 09h40

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