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 - [Débutant]


Sujet :

Hibernate Java

  1. #1
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut Hibernate - [Débutant]
    Salut à tous

    Juste une petite question simple à tous les pros d'hibernate :

    Que pensez-vous d'hibernate ?
    Cela vaut-il le coup de s'investir sur ce framework ?
    Quels sont les avantages / inconvénients ?
    Quand / pour quels types de projet faut-il mettre en place Hibernate ?

    désolé, il y a plusieurs questions finalement...

    Merci.

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Je pense beaucoup de bien d'Hibernate, comme beaucoup de gens.

    Je pense que ça vaut le coup d'investir. Beaucoup de projets en entreprise se basent dessus. Il n'y a qu'à voir les offres d'emplois.

    L'avantage principal est de simplifier la persistance des données de ton application. Le code est plus clair, plus concis, plus simple à maintenir.
    Il evite l'ecriture de tout un tas de requêtes sql.
    Le principal défaut, est le temps nécessaire à sa prise en main. Je pense qu'il faut quelques temps avant d'avoir bien assimilé les principaux concepts.

    On peut le mettre en place pour tout type de projets, y compris des applications Swing, contrairement à ce qu'on peut lire sur le net.

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    J'utilise hibernate depuis un moment, comme tous les frameworks, il a des avantages et des inconvénients.

    D'1 côté :
    - on s'affranchit du langage SQL (en partie) et de JDBC
    - il est très utilisé, beaucoup d’offres
    - le mapping est très puissant

    De l'autre :
    - on apprend un nouveau langage
    - quand on a un disfonctionnement, il faut aller voir dans le code (métier) d'utilisation mais aussi dans le paramétrage d'hibernate.
    - une modification du paramétrage peut entraîner un disfonctionnement de l’application
    - la suppression pose problème

    Personnellement, je préfère JDBC, on sait ce qu’il fait en regardant le code.

    A+

  4. #4
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Personnellement, j'utilise ca au boulot depuis un moment et j'en suis très content. C'est très pratique et les concepts de base sont plutôt simples à assimiller. Manipuler des objets est tellement plus simple que de manipuler des requêtes SQL...

    Alors, à conseiller pour toute sorte de projet.

  5. #5
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut
    Merci à tous pour vos réponses.

    Comme vous m'avez conseillé Hibernate, je m'y suis mis.
    ....

    et évidemment ça bug un peu...

    j'utilise eclipse et hibernate2.jar

    la connexion avec ma base sql server est ok.
    il a généré les .java pour chaque table et les fichiers hbm.
    en fait il a crée des fichiers du type nomtable.hbm.xml
    est-ce que c'est normal ? ou cela devrait-il être seulement nomtable.hbm ?

    dans mon fichier hibernate.cfg.xml, mes fichiers de ressources sont référencé comme nomtable.hbm.xml

    j'ai fait une classe avec une méthode main mais quand je la lance j'ai le message d'erreur suivant :

    NFO: configuring from resource: /hibernate.cfg.xml
    30 nov. 2006 09:25:50 net.sf.hibernate.cfg.Configuration getConfigurationInputStream
    INFO: Configuration resource: /hibernate.cfg.xml
    30 nov. 2006 09:25:51 net.sf.hibernate.cfg.Configuration doConfigure
    GRAVE: problem parsing configuration/hibernate.cfg.xml
    org.dom4j.DocumentException: C:\Program Files\Eclipse3.2\Workspace\hibernate\hibernate-configuration-2.0.dtd (Le fichier spécifié est introuvable) Nested exception: C:\Program Files\Eclipse3.2\Workspace\hibernate\hibernate-configuration-2.0.dtd (Le fichier spécifié est introuvable)
    at org.dom4j.io.SAXReader.read(SAXReader.java:358)
    at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:953)
    at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:897)
    at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:883)
    at com.bnppi.hibernate.base.HibernateUtil.<clinit>(HibernateUtil.java:15)
    at Test.main(Test.java:15)
    Nested exception:
    java.io.FileNotFoundException: C:\Program Files\Eclipse3.2\Workspace\hibernate\hibernate-configuration-2.0.dtd (Le fichier spécifié est introuvable)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at sun.net.http://www.protocol.file.FileURLConn...onnect(Unknown Source)
    at sun.net.http://www.protocol.file.FileURLConn...Stream(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.dom4j.io.SAXReader.read(SAXReader.java:339)
    at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:953)
    at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:897)
    at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:883)
    at com.bnppi.hibernate.base.HibernateUtil.<clinit>(HibernateUtil.java:15)
    at Test.main(Test.java:15)
    Exception in thread "main" java.lang.ExceptionInInitializerError
    at Test.main(Test.java:15)
    Caused by: java.lang.RuntimeException: Problème de configuration : problem parsing configuration/hibernate.cfg.xml
    at com.bnppi.hibernate.base.HibernateUtil.<clinit>(HibernateUtil.java:17)
    ... 1 more
    Caused by: net.sf.hibernate.HibernateException: problem parsing configuration/hibernate.cfg.xml
    at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:958)
    at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:897)
    at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:883)
    at com.bnppi.hibernate.base.HibernateUtil.<clinit>(HibernateUtil.java:15)
    ... 1 more
    Caused by: org.dom4j.DocumentException: C:\Program Files\Eclipse3.2\Workspace\hibernate\hibernate-configuration-2.0.dtd (Le fichier spécifié est introuvable) Nested exception: C:\Program Files\Eclipse3.2\Workspace\hibernate\hibernate-configuration-2.0.dtd (Le fichier spécifié est introuvable)
    at org.dom4j.io.SAXReader.read(SAXReader.java:358)
    at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:953)
    ... 4 more
    je vous donne mon fichier hibernate.cfg.xml :

    Code xml : 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
    <!DOCTYPE hibernate-configuration PUBLIC  
          "-//Hibernate/Hibernate Configuration DTD 2.0//EN"
            "hibernate-configuration-2.0.dtd"> 
    <hibernate-configuration>
    	<session-factory>
    		<!-- local connection properties -->
    		<property name="hibernate.connection.url">
    			jdbc:jtds:sqlserver://PARS001I0015:1433/AUGUSTE_DEV
    		</property>
    		<property name="hibernate.connection.driver_class">
    			net.sourceforge.jtds.jdbc.Driver
    		</property>
    		<property name="hibernate.connection.username">auguste</property>
    		<property name="hibernate.connection.password">magicadm</property>
    		<!-- property name="hibernate.connection.pool_size"></property -->
    		<!-- dialect for Microsoft SQL Server -->
    		<property name="dialect">
    			org.hibernate.dialect.SQLServerDialect
    		</property>
    		<property name="hibernate.show_sql">false</property>
    		<property name="hibernate.transaction.factory_class">
    			org.hibernate.transaction.JDBCTransactionFactory
    		</property>
    		<mapping resource="hibernate.cfg.xml" />
    		<mapping resource="Tiers.hbm.xml" />
    	</session-factory>
    </hibernate-configuration>

    si vous pouvez m'aider ?

    merci

  6. #6
    Membre habitué Avatar de bouchette63
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Points : 187
    Points
    187
    Par défaut
    Bonjour,

    Tu aurais du poster ton problème dans un nouveau sujet.

    Enfin apparemment il n'arrive pas à charger la DTD de ton fichier hibernate.cfg.xml. Remplace le doctype par celui ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <!DOCTYPE hibernate-configuration PUBLIC 
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
    Fait de même pour tes fichiers de mapping nomTable.hbm.xml (le nom de ces fichiers de mapping est tout à fait normal ), vérifie que tu as :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

  7. #7
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut
    Merci, ça fonctionne mieux.

    Désolé de ne pas avoir crée un nouveau sujet.

    Maintenant, quand je lance ma méthode main, voilà l'erreur que j'ai :

    30 nov. 2006 10:21:03 net.sf.hibernate.cfg.Environment <clinit>
    INFO: Hibernate 2.1.6
    30 nov. 2006 10:21:03 net.sf.hibernate.cfg.Environment <clinit>
    INFO: hibernate.properties not found
    30 nov. 2006 10:21:03 net.sf.hibernate.cfg.Environment <clinit>
    INFO: using CGLIB reflection optimizer
    30 nov. 2006 10:21:03 net.sf.hibernate.cfg.Configuration configure
    INFO: configuring from resource: /hibernate.cfg.xml
    30 nov. 2006 10:21:03 net.sf.hibernate.cfg.Configuration getConfigurationInputStream
    INFO: Configuration resource: /hibernate.cfg.xml
    30 nov. 2006 10:21:03 net.sf.hibernate.cfg.Configuration addResource
    INFO: Mapping resource: hibernate.cfg.xml
    30 nov. 2006 10:21:03 net.sf.hibernate.cfg.Configuration addResource
    INFO: Mapping resource: Tiers.hbm.xml
    30 nov. 2006 10:21:04 net.sf.hibernate.cfg.Binder bindRootClass
    INFO: Mapping class: com.bnppi.hibernate.Tiers -> TIERS
    30 nov. 2006 10:21:04 net.sf.hibernate.cfg.Configuration doConfigure
    INFO: Configured SessionFactory: null
    30 nov. 2006 10:21:04 net.sf.hibernate.cfg.Configuration secondPassCompile
    INFO: processing one-to-many association mappings
    30 nov. 2006 10:21:04 net.sf.hibernate.cfg.Configuration secondPassCompile
    INFO: processing one-to-one association property references
    30 nov. 2006 10:21:04 net.sf.hibernate.cfg.Configuration secondPassCompile
    INFO: processing foreign key constraints
    30 nov. 2006 10:21:04 net.sf.hibernate.cfg.SettingsFactory buildSettings
    ATTENTION: No dialect set - using GenericDialect: Dialect class not found: org.hibernate.dialect.SQLServerDialect
    30 nov. 2006 10:21:04 net.sf.hibernate.dialect.Dialect <init>
    INFO: Using dialect: net.sf.hibernate.dialect.GenericDialect
    30 nov. 2006 10:21:04 net.sf.hibernate.cfg.SettingsFactory buildSettings
    INFO: Use outer join fetching: true
    30 nov. 2006 10:21:04 net.sf.hibernate.connection.DriverManagerConnectionProvider configure
    INFO: Using Hibernate built-in connection pool (not for production use!)
    30 nov. 2006 10:21:04 net.sf.hibernate.connection.DriverManagerConnectionProvider configure
    INFO: Hibernate connection pool size: 20
    30 nov. 2006 10:21:04 net.sf.hibernate.connection.DriverManagerConnectionProvider configure
    INFO: using driver: net.sourceforge.jtds.jdbc.Driver at URL: jdbc:jtds:sqlserver://PARS001I0015:1433/AUGUSTE_DEV
    30 nov. 2006 10:21:04 net.sf.hibernate.connection.DriverManagerConnectionProvider configure
    INFO: connection properties: {user=auguste, password=magicadm}
    30 nov. 2006 10:21:04 net.sf.hibernate.transaction.TransactionFactoryFactory buildTransactionFactory
    INFO: Transaction strategy: net.sf.hibernate.transaction.JDBCTransactionFactory
    30 nov. 2006 10:21:04 net.sf.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup
    INFO: No TransactionManagerLookup configured (in JTA environment, use of process level read-write cache is not recommended)
    30 nov. 2006 10:21:04 net.sf.hibernate.cfg.SettingsFactory buildSettings
    INFO: Use scrollable result sets: true
    30 nov. 2006 10:21:04 net.sf.hibernate.cfg.SettingsFactory buildSettings
    INFO: Use JDBC3 getGeneratedKeys(): true
    30 nov. 2006 10:21:04 net.sf.hibernate.cfg.SettingsFactory buildSettings
    INFO: Optimize cache for minimal puts: false
    30 nov. 2006 10:21:04 net.sf.hibernate.cfg.SettingsFactory buildSettings
    INFO: Query language substitutions: {}
    30 nov. 2006 10:21:04 net.sf.hibernate.cfg.SettingsFactory buildSettings
    INFO: cache provider: net.sf.hibernate.cache.EhCacheProvider
    30 nov. 2006 10:21:04 net.sf.hibernate.cfg.Configuration configureCaches
    INFO: instantiating and configuring caches
    30 nov. 2006 10:21:04 net.sf.hibernate.impl.SessionFactoryImpl <init>
    INFO: building session factory
    Exception in thread "main" java.lang.ExceptionInInitializerError
    at Test.main(Test.java:15)
    Caused by: java.lang.RuntimeException: Problème de configuration : could not instantiate id generator
    at com.bnppi.hibernate.base.HibernateUtil.<clinit>(HibernateUtil.java:17)
    ... 1 more
    Caused by: net.sf.hibernate.MappingException: could not instantiate id generator
    at net.sf.hibernate.id.IdentifierGeneratorFactory.create(IdentifierGeneratorFactory.java:82)
    at net.sf.hibernate.mapping.SimpleValue.createIdentifierGenerator(SimpleValue.java:82)
    at net.sf.hibernate.persister.AbstractEntityPersister.<init>(AbstractEntityPersister.java:635)
    at net.sf.hibernate.persister.EntityPersister.<init>(EntityPersister.java:716)
    at net.sf.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:42)
    at net.sf.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:136)
    at net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:791)
    at com.bnppi.hibernate.base.HibernateUtil.<clinit>(HibernateUtil.java:15)
    ... 1 more
    Caused by: net.sf.hibernate.MappingException: Dialect does not support sequences
    at net.sf.hibernate.dialect.Dialect.getSequenceNextValString(Dialect.java:319)
    at net.sf.hibernate.id.SequenceGenerator.configure(SequenceGenerator.java:62)
    at net.sf.hibernate.id.IdentifierGeneratorFactory.create(IdentifierGeneratorFactory.java:78)
    ... 8 more
    Je ne comprend pas le pb....

    cela vient-il de ma classe HibernateUtil ?


    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
    package com.bnppi.hibernate.base;
     
    import net.sf.hibernate.HibernateException;
    import net.sf.hibernate.Session;
    import net.sf.hibernate.SessionFactory;
    import net.sf.hibernate.cfg.Configuration;
     
     
    public class HibernateUtil {
     
    	private static final SessionFactory sessionFactory;
     
    	static{
    		try{
    			sessionFactory = new Configuration().configure().buildSessionFactory();
    		}catch(HibernateException ex){
    			throw new RuntimeException("Problème de configuration : " +ex.getMessage(), ex);
    		}
    	}
     
    	public static final ThreadLocal session = new ThreadLocal();
     
    	public static Session currentSession() throws HibernateException {
    		Session s = (Session)session.get();
    		if(s==null){
    			s = sessionFactory.openSession();
    			session.set(s);
    		}
    		return s;
    	}
     
    	public static void closeSession() throws HibernateException {
    		Session s = (Session)session.get();
    		session.set(null);
    		if(s!=null){
    			s.close();
    		}
    	}
    }

  8. #8
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Caused by: net.sf.hibernate.MappingException: Dialect does not support sequences
    Regarde ton mapping concernant la génération d'id, ça semble venir de là.

    Pourquoi ne pas utiliser Hibernate 3 ?

  9. #9
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut
    le mapping de ma table est le suivant :

    Code xml : 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
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
    	"-//Hibernate/Hibernate Mapping DTD//EN"
    	"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
     
    <hibernate-mapping package="com.bnppi.hibernate">
    	<class name="Tiers"	table="TIERS">
    		<meta attribute="sync-DAO">false</meta>
     
    		<meta attribute="sync-DAO">false</meta>
     
    		<id	name="Id" type="integer" column="num_tiers">
    			<generator class="sequence"/>
    		</id>
    		<property name="TypeFiliationJuridique"	column="type_filiation_juridique" type="string"	not-null="true"	length="6"/>
    		<property name="NumeroTiersParentJuridique"	column="numero_tiers_parent_juridique"	type="integer"	not-null="true"	length="10"/>
    		<property name="TypeFiliationOrganisation" column="type_filiation_organisation"	type="string" not-null="true" length="6"/>
    		<property name="NumTiersParentOrganisation"	column="num_tiers_parent_organisation" type="integer" not-null="true" length="10"/>
    		<property name="NumAnneau"	column="num_anneau"	type="string" not-null="true" length="2"/>

    Le pb vient-il de ça :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <id name="Id" type="integer" column="num_tiers">
    	<generator class="sequence"/>
    </id>

    Quant à hibernate3, que cela apporterait-il de plus ?

  10. #10
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Ta base de données ne supporte pas les séquences.
    Il faut donc choisir une autre stratégie de génération d'id.

    Va voir ce lien pour faire ton choix:
    http://www.hibernate.org/hib_docs/v3...n-id-generator


    Ben la version 2 commence à dater.
    Je ne peux pas te lister les différences entre les deux, mais il serait plus sage de commencer avec la dernière.

  11. #11
    Membre habitué Avatar de bouchette63
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Points : 187
    Points
    187
    Par défaut
    Sur les différences entre Hibernate 2 et 3, tu trouveras un listing de quelques améliorations apportés sur ce post : ICI

  12. #12
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut
    OK, merci, je vais essayer avec hibernate 3

    Mais je vousdrais quand même faire fonctionner mon test avec hibernate 2
    j'ai changé la séquence par ceci

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <id name="Id" type="integer" column="num_tiers">
    	<generator class="identity"/>
    </id>

    du coup, je n'ai plus le pb mais il ne veut pas exécuter le query :

    1
    30 nov. 2006 11:36:55 net.sf.hibernate.cfg.Environment <clinit>
    INFO: Hibernate 2.1.6
    30 nov. 2006 11:36:55 net.sf.hibernate.cfg.Environment <clinit>
    INFO: hibernate.properties not found
    30 nov. 2006 11:36:55 net.sf.hibernate.cfg.Environment <clinit>
    INFO: using CGLIB reflection optimizer
    30 nov. 2006 11:36:55 net.sf.hibernate.cfg.Configuration configure
    INFO: configuring from resource: /hibernate.cfg.xml
    30 nov. 2006 11:36:55 net.sf.hibernate.cfg.Configuration getConfigurationInputStream
    INFO: Configuration resource: /hibernate.cfg.xml
    30 nov. 2006 11:36:55 net.sf.hibernate.cfg.Configuration addResource
    INFO: Mapping resource: hibernate.cfg.xml
    30 nov. 2006 11:36:55 net.sf.hibernate.cfg.Configuration addResource
    INFO: Mapping resource: Tiers.hbm.xml
    30 nov. 2006 11:36:55 net.sf.hibernate.cfg.Binder bindRootClass
    INFO: Mapping class: com.bnppi.hibernate.Tiers -> TIERS
    30 nov. 2006 11:36:56 net.sf.hibernate.cfg.Configuration doConfigure
    INFO: Configured SessionFactory: null
    30 nov. 2006 11:36:56 net.sf.hibernate.cfg.Configuration secondPassCompile
    INFO: processing one-to-many association mappings
    30 nov. 2006 11:36:56 net.sf.hibernate.cfg.Configuration secondPassCompile
    INFO: processing one-to-one association property references
    30 nov. 2006 11:36:56 net.sf.hibernate.cfg.Configuration secondPassCompile
    INFO: processing foreign key constraints
    30 nov. 2006 11:36:56 net.sf.hibernate.dialect.Dialect <init>
    INFO: Using dialect: net.sf.hibernate.dialect.SQLServerDialect
    30 nov. 2006 11:36:56 net.sf.hibernate.cfg.SettingsFactory buildSettings
    INFO: Use outer join fetching: true
    30 nov. 2006 11:36:56 net.sf.hibernate.connection.DriverManagerConnectionProvider configure
    INFO: Using Hibernate built-in connection pool (not for production use!)
    30 nov. 2006 11:36:56 net.sf.hibernate.connection.DriverManagerConnectionProvider configure
    INFO: Hibernate connection pool size: 20
    30 nov. 2006 11:36:56 net.sf.hibernate.connection.DriverManagerConnectionProvider configure
    INFO: using driver: net.sourceforge.jtds.jdbc.Driver at URL: jdbc:jtds:sqlserver://PARS001I0015:1433/AUGUSTE_DEV
    30 nov. 2006 11:36:56 net.sf.hibernate.connection.DriverManagerConnectionProvider configure
    INFO: connection properties: {user=auguste, password=magicadm}
    30 nov. 2006 11:36:56 net.sf.hibernate.transaction.TransactionFactoryFactory buildTransactionFactory
    INFO: Transaction strategy: net.sf.hibernate.transaction.JDBCTransactionFactory
    30 nov. 2006 11:36:56 net.sf.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup
    INFO: No TransactionManagerLookup configured (in JTA environment, use of process level read-write cache is not recommended)
    30 nov. 2006 11:36:56 net.sf.hibernate.cfg.SettingsFactory buildSettings
    INFO: Use scrollable result sets: true
    30 nov. 2006 11:36:56 net.sf.hibernate.cfg.SettingsFactory buildSettings
    INFO: Use JDBC3 getGeneratedKeys(): true
    30 nov. 2006 11:36:56 net.sf.hibernate.cfg.SettingsFactory buildSettings
    INFO: Optimize cache for minimal puts: false
    30 nov. 2006 11:36:56 net.sf.hibernate.cfg.SettingsFactory buildSettings
    INFO: Query language substitutions: {}
    30 nov. 2006 11:36:56 net.sf.hibernate.cfg.SettingsFactory buildSettings
    INFO: cache provider: net.sf.hibernate.cache.EhCacheProvider
    30 nov. 2006 11:36:56 net.sf.hibernate.cfg.Configuration configureCaches
    INFO: instantiating and configuring caches
    30 nov. 2006 11:36:56 net.sf.hibernate.impl.SessionFactoryImpl <init>
    INFO: building session factory
    30 nov. 2006 11:36:57 net.sf.hibernate.impl.SessionFactoryObjectFactory addInstance
    INFO: Not binding factory to JNDI, no JNDI name configured
    2
    3
    30 nov. 2006 11:37:32 net.sf.hibernate.util.JDBCExceptionReporter logExceptions
    ATTENTION: SQL Error: 0, SQLState: HY000
    30 nov. 2006 11:37:32 net.sf.hibernate.util.JDBCExceptionReporter logExceptions
    GRAVE: Error occured while consuming output: Unknown packet subtype 0x0
    30 nov. 2006 11:37:32 net.sf.hibernate.util.JDBCExceptionReporter logExceptions
    ATTENTION: SQL Error: 0, SQLState: HY000
    30 nov. 2006 11:37:32 net.sf.hibernate.util.JDBCExceptionReporter logExceptions
    GRAVE: Error occured while consuming output: Unknown packet subtype 0x0
    30 nov. 2006 11:37:32 net.sf.hibernate.JDBCException <init>
    GRAVE: Could not execute query
    java.sql.SQLException: Error occured while consuming output: Unknown packet subtype 0x0
    at net.sourceforge.jtds.jdbc.TdsUtil.getSQLException(TdsUtil.java:181)
    at net.sourceforge.jtds.jdbc.TdsUtil.getSQLException(TdsUtil.java:160)
    at net.sourceforge.jtds.jdbc.Tds.skipToEnd(Tds.java:3545)
    at net.sourceforge.jtds.jdbc.TdsStatement.close(TdsStatement.java:428)
    at net.sf.hibernate.impl.BatcherImpl.closePreparedStatement(BatcherImpl.java:270)
    at net.sf.hibernate.impl.BatcherImpl.closeStatement(BatcherImpl.java:140)
    at net.sf.hibernate.impl.BatcherImpl.closeQueryStatement(BatcherImpl.java:156)
    at net.sf.hibernate.impl.BatcherImpl.closeQueryStatement(BatcherImpl.java:103)
    at net.sf.hibernate.loader.Loader.doQuery(Loader.java:302)
    at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:133)
    at net.sf.hibernate.loader.Loader.doList(Loader.java:1033)
    at net.sf.hibernate.loader.Loader.list(Loader.java:1024)
    at net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:854)
    at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1544)
    at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1521)
    at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1513)
    at Test.main(Test.java:20)
    Caused by: net.sourceforge.jtds.jdbc.TdsUnknownPacketSubType: Unknown packet subtype 0x0
    at net.sourceforge.jtds.jdbc.Tds.processSubPacket(Tds.java:1054)
    at net.sourceforge.jtds.jdbc.Tds.processSubPacket(Tds.java:950)
    at net.sourceforge.jtds.jdbc.Tds.skipToEnd(Tds.java:3538)
    ... 14 more
    Exception in thread "main" net.sf.hibernate.JDBCException: Could not execute query
    at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1547)
    at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1521)
    at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1513)
    at Test.main(Test.java:20)
    Caused by: java.sql.SQLException: Error occured while consuming output: Unknown packet subtype 0x0
    at net.sourceforge.jtds.jdbc.TdsUtil.getSQLException(TdsUtil.java:181)
    at net.sourceforge.jtds.jdbc.TdsUtil.getSQLException(TdsUtil.java:160)
    at net.sourceforge.jtds.jdbc.Tds.skipToEnd(Tds.java:3545)
    at net.sourceforge.jtds.jdbc.TdsStatement.close(TdsStatement.java:428)
    at net.sf.hibernate.impl.BatcherImpl.closePreparedStatement(BatcherImpl.java:270)
    at net.sf.hibernate.impl.BatcherImpl.closeStatement(BatcherImpl.java:140)
    at net.sf.hibernate.impl.BatcherImpl.closeQueryStatement(BatcherImpl.java:156)
    at net.sf.hibernate.impl.BatcherImpl.closeQueryStatement(BatcherImpl.java:103)
    at net.sf.hibernate.loader.Loader.doQuery(Loader.java:302)
    at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:133)
    at net.sf.hibernate.loader.Loader.doList(Loader.java:1033)
    at net.sf.hibernate.loader.Loader.list(Loader.java:1024)
    at net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:854)
    at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1544)
    ... 3 more
    Caused by: net.sourceforge.jtds.jdbc.TdsUnknownPacketSubType: Unknown packet subtype 0x0
    at net.sourceforge.jtds.jdbc.Tds.processSubPacket(Tds.java:1054)
    at net.sourceforge.jtds.jdbc.Tds.processSubPacket(Tds.java:950)
    at net.sourceforge.jtds.jdbc.Tds.skipToEnd(Tds.java:3538)
    ... 14 more
    je ne comprend pas les messages d'erreurs....

  13. #13
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Sans le code ça va être difficile de t'aider.

  14. #14
    Membre habitué Avatar de bouchette63
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Points : 187
    Points
    187
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRAVE: Error occured while consuming output: Unknown packet subtype 0x0
    Ce problème est généralement dû à une configuration incorrecte de serveur SQL.

    PS : chennuo essaye d'utiliser la baliser CODE pour que tes posts soit plus clair STP.

  15. #15
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut
    en fait j'avais déjà donner le code plus haut je crois...

    il affiche les 3 premières sorties consoles (system.out.printnl("1"))...


    je le remet :


    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
     
    import java.util.Iterator;
    import java.util.List;
     
    import net.sf.hibernate.HibernateException;
    import net.sf.hibernate.Session;
    import net.sf.hibernate.Transaction;
     
    import com.bnppi.hibernate.Tiers;
    import com.bnppi.hibernate.base.HibernateUtil;
     
     
    public class Test {
     
    	public static void main(String args[]) throws HibernateException {
    		System.out.println("1");
    		Session session = HibernateUtil.currentSession();
    		System.out.println("2");
    		Transaction tx = session.beginTransaction();
    		System.out.println("3");
    		List list = session.find("from Tiers");
    		System.out.println("4");
    		Iterator it = list.iterator();
    		System.out.println("5");
    		while(it.hasNext()){
    			System.out.println("6");
    			Tiers tiers = (Tiers)it.next();
    			System.out.println("7");
    			System.out.println(tiers.getTypeEtablissement());
    			System.out.println("8");
    		}
    		HibernateUtil.closeSession();
    		System.out.println("9");
    	}
    }
    donc ça veut dire que je dois abandonner ce test....

  16. #16
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut
    rebonjour à tous,

    pour info, j'ai réussi à faire fonctionner ma classe test avec le main en faisant un test sur une autre table.
    Comme dans ma classe, je récupère l'ensemble de la table dans un objet List et que avant, je faisais le test sur une table importante (163 000 enregistrements). Là je le fais sur une table ne contenant que 300 enreg.

    Je ne sais pas si le pb venait de là...
    un objet List peut contenir combien de données ?

  17. #17
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut
    Pour compléter :

    J'ai refais le test sur ma grosse table et ça plante. dans le HQL, j'ai rajouté une clause where pour ne sélectionner qu'un enregistrement et là, pas de pb, ça fonctionne.

    donc, je pense que le pb vient bien de la capacité de l'objet List qui ne peut pas recevoir les 163000 enregs.

    Qu'en pensez-vous ?

  18. #18
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Je me serais attendu à un autre message d'erreur si c'était un problème de mémoire.
    Cependant, charger autant de données dans une liste n'est pas une bonne idée. Ton utilisateur serait perdu avec autant d'infos affichées en même temps. Souvent on utilise de "paging", on limite donc le nombres d'enregistrements retournés et affichés sur chaque page.

  19. #19
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut
    oui je suis d'accord. en fait, ceci est juste un exemple, ce n'est pas pour une application normale. c'est juste pour faire quelques tests avec hibernate.

    bon, je crois que peux clore ce topic.

    Merci encore à tous. (je vais essayer de me mettre sur hibernate3 pour tester les différences)

  20. #20
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut
    Pour terminer, j'ai essayé de remplacer l'objet list par un objet vector, et j'obtiens le message suivant : java.lang.OutOfMemoryError: Java heap space.

    pb résolu.

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

Discussions similaires

  1. Besoin d'aide hibernate débutant
    Par bribe dans le forum Hibernate
    Réponses: 6
    Dernier message: 17/03/2011, 15h12
  2. Hibernate - Débutant
    Par chennuo dans le forum Hibernate
    Réponses: 18
    Dernier message: 30/11/2007, 11h12
  3. [ débutant ] hibernate 2.1
    Par wizzmasta dans le forum Oracle
    Réponses: 6
    Dernier message: 13/12/2005, 11h15
  4. [HIBERNATE] - Débutant - Requête croisées
    Par charlot44 dans le forum Hibernate
    Réponses: 19
    Dernier message: 14/06/2005, 16h06
  5. Hibernate - Débutant
    Par charlot44 dans le forum Hibernate
    Réponses: 2
    Dernier message: 06/06/2005, 16h33

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