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

Spring Java Discussion :

Configuration : Erreur entityManagerFactory


Sujet :

Spring Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2013
    Messages : 4
    Par défaut Configuration : Erreur entityManagerFactory
    Bonsoir,

    Je rencontre quelques difficultés à installer Spring dans un projet Web utilisant Spring-Mvc et Jpa / Hibernate.

    Je rencontre l'erreur suivante :

    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
     
    log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).
    log4j:WARN Please initialize the log4j system properly.
    log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
    Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: persistUnitIodos] Unable to build EntityManagerFactory
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
    	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
    	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:591)
    	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
    	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:469)
    	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
    	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
    	at com.iodos.batch.BatchUtil.startSpringBatch(BatchUtil.java:21)
    	at com.iodos.batch.BatchUtil.main(BatchUtil.java:15)
    Caused by: javax.persistence.PersistenceException: [PersistenceUnit: persistUnitIodos] Unable to build EntityManagerFactory
    	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:924)
    	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:899)
    	at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:59)
    	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
    	at org.springframework.orm.jpa.LocalEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalEntityManagerFactoryBean.java:92)
    	at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:310)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
    	... 13 more
    Caused by: org.hibernate.HibernateException: Wrong column type in jpa.t_lien for column valide. Found: bit, expected: boolean
    	at org.hibernate.mapping.Table.validateColumns(Table.java:373)
    	at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1305)
    	at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:155)
    	at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:508)
    	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1790)
    	at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:96)
    	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:914)
    	... 20 more
    Je suppose que j'oublie quelque chose dans le context.xml ou peristence.xml mais je ne trouve pas quoi

    Voici mon persistence.xml
    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
     
    <persistence xmlns="http://java.sun.com/xml/ns/persistence"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
        http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
       version="1.0">
     
       <persistence-unit name="persistUnitIodos">
       	   <provider>org.hibernate.ejb.HibernatePersistence</provider>
           <properties>
              <!-- Only scan and detect annotated entities -->
               <property name="hibernate.archive.autodetection"       value="class"/>
     
    		  <property name="hibernate.show_sql"                     value="true"/>
              <property name="hibernate.format_sql"                   value="true"/>
              <property name="use_sql_comments"                       value="true"/>
     
              <property name="hibernate.connection.driver_class"      value="com.mysql.jdbc.Driver"/>
              <property name="hibernate.connection.url"               value="jdbc:mysql://localhost/jpa"/>
              <property name="hibernate.connection.username"          value="root"/>
              <property name="hibernate.connection.password"          value=""/>
     
              <property name="hibernate.c3p0.min_size"                value="5"/>
              <property name="hibernate.c3p0.max_size"                value="20"/>
              <property name="hibernate.c3p0.timeout"                 value="300"/>
              <property name="hibernate.c3p0.max_statements"          value="50"/>
              <property name="hibernate.c3p0.idle_test_period"        value="3000"/>
     
              <property name="hibernate.dialect"                      value="org.hibernate.dialect.MySQLDialect"/>
     
              <property name="hibernate.connection.characterEncoding" value="utf8" />
              <property name="hibernate.connection.charSet"           value="utf8" />
     
    		  <property name="hibernate.connection.autocommit"        value="false"/>
     
               <property name="hibernate.hbm2ddl.auto"                value="validate"/>
     
          </properties>
       </persistence-unit>
    </persistence>
    et mon applicationContext.xml
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    		xmlns:p="http://www.springframework.org/schema/p"
    		xmlns:aop="http://www.springframework.org/schema/aop"
    		xmlns:context="http://www.springframework.org/schema/context"
    		xmlns:jee="http://www.springframework.org/schema/jee"
    		xmlns:tx="http://www.springframework.org/schema/tx"
    		xsi:schemaLocation="
    			http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
    			http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    			http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
    			http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
    			http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
     
    	<context:annotation-config />
    	<context:component-scan base-package="iodos-mvc" />
     
     
    	<bean id="entityManagerFactory"
    		class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
    		<property name="persistenceUnitName" value="persistUnitIodos" />
    	</bean>
     
    	<!-- Transaction manager for a single JPA EntityManagerFactory (alternative to JTA) -->
    	<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"
    			p:entityManagerFactory-ref="entityManagerFactory"/>
     
        <tx:annotation-driven/>
    </beans>
    Si quelqu'un peut m'aider... Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    HibernateException: Wrong column type in jpa.t_lien for column valide. Found: bit, expected: boolean
    Tu as un mapping hibernate sur une colonne qui doit être définie comme Boolean pour t_lien.

    A+.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2013
    Messages : 4
    Par défaut
    Faut vraiment que j'ouvre les moi...

    Merci

    En fait, Hibernate à l'air de convertir un boolean en bit... Et ne veut donc pas mapper sur le champ MySQL qui lui est en tinyint(1).

    Et... Hibernate n'as pas l'air de tenir compte de mon "columnDefinition" ou même de l'annotation Type

  4. #4
    Membre très actif
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 354
    Billets dans le blog
    1
    Par défaut
    Salut,
    soit tu fais la correction sur tous tes champs(annotation, dans ton mappage xml hibernate)
    soit tu change de dialect
    en voici une que j'ai trouvé dans un livre sur grails (Programming Grails Burt.Beckwith)
    Code groovy : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    import org.hibernate.dialect.MySQL5InnoDBDialect
     
    import java.sql.Types
     
    class MySQLDialectCustom extends MySQL5InnoDBDialect {
     
        @Override
        String getTableTypeString() {
            super.getTableTypeString() + ' DEFAULT CHARSET=utf8'
        }
     
        MySQLDialectCustom() {
            registerColumnType Types.BIT, 'boolean'
        }
    }

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

Discussions similaires

  1. [Configuration] Erreur lors d'envoie de mail avec PHP
    Par ostie127 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 05/02/2008, 18h35
  2. Eclipse, configuration erreurs?
    Par MithzeWhite dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 19/07/2007, 16h41
  3. [Configuration] erreur lors de la configuration de php
    Par jadoo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 10/11/2006, 16h09
  4. [Configuration] Erreur de redirection
    Par BnA dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 12/05/2006, 17h02
  5. [Configuration] erreur 404, url demandée ?
    Par mikyfpc dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 9
    Dernier message: 08/10/2004, 09h37

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