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 :

Eclipse - hibernate3 - select!


Sujet :

Hibernate Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 213
    Points : 103
    Points
    103
    Par défaut Eclipse - hibernate3 - select!
    Bonjour les gens!!!

    bon j'ai fait un mix des deux tuto, celui de dvp et celui d'hibernate

    donc quand j'insert dans ma table no souci sa marche mais c'est au moment de faire le select que sa foire!

    j'ai la classe Event.java du tuto hibernate :

    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
    package events;
     
    import java.util.Date;
     
    public class Event {
        private int id;
     
        private String title;
        private Date date;
     
        public Event() {}
     
        public int getId() {
            return id;
        }
     
        private void setId(int id) {
            this.id = id;
        }
     
        public Date getDate() {
            return date;
        }
     
        public void setDate(Date date) {
            this.date = date;
        }
     
        public String getTitle() {
            return title;
        }
     
        public void setTitle(String title) {
            this.title = title;
        }
    }
    mon Event.hbm.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
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
            "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
            "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     
    <hibernate-mapping package="events">
    <class name="Event" table="event">
    <meta attribute="sync-DAO">false</meta>
    <id name="id" type="integer" column="id">
    	<generator class="increment"/>
    </id>
     
    <property name="title" column="title" type="char" not-null="true" length="40"/>
     
    <property name="date" column="date" type="timestamp" not-null="true"/>
     
    </class> 
    </hibernate-mapping>
    mon hibernate.cfg.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
    <?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">
    <hibernate-configuration>
    <session-factory>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.password">*******</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate</property>
    <property name="hibernate.connection.username">*******</property>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
    <property name="current_session_context_class">thread</property>
    <property name="hibernate.show_sql">true</property>
    <mapping resource="Event.hbm.xml"/>
    </session-factory>
    </hibernate-configuration>
    ma classe HibernateUtil.java :
    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
    package util;
     
    import org.hibernate.*;
    import org.hibernate.cfg.*;
     
    public class HibernateUtil {
     
     private static final SessionFactory sessionFactory;
     
     static {
       try {
       // Crée la SessionFactory
       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();
       // Ouvre une nouvelle Session, si ce Thread n'en a aucune
       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();
       }
     }
    et enfin mon main Test.java :
    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
    package events;
    import org.hibernate.Session;
    import org.hibernate.Transaction;
     
    import java.util.Date;
    import java.util.List;
     
    import util.HibernateUtil;
     
    public class EventManager {
     
        public static void main(String[] args) {
     
        	Session session = HibernateUtil.currentSession();
        	Transaction tx = session.beginTransaction();
     
        	Event ev = new Event();
     
        	ev = (Event)session.get(Event.class,new Integer(2));
     
        	System.out.println("id : "+ev.getId()+" - Titre : "+ev.getTitle()+" - Date : "+ev.getDate());
        	ev.setTitle("J'ai réussi");
        	session.save(ev);
     
                 tx.commit();
        	HibernateUtil.closeSession();
     
       }
    }
    et enfin mon rapport d'erreur :
    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
    log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
    log4j:WARN Please initialize the log4j system properly.
    Hibernate: select event0_.id as id0_0_, event0_.title as title0_0_, event0_.date as date0_0_ from event event0_ where event0_.id=?
    Exception in thread "main" org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of events.Event.title
    	at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:104)
    	at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:337)
    	at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:200)
    	at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:3571)
    	at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:133)
    	at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:854)
    	at org.hibernate.loader.Loader.doQuery(Loader.java:729)
    	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
    	at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
    	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
    	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
    	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3049)
    	at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:399)
    	at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:375)
    	at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:139)
    	at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:195)
    	at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103)
    	at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
    	at org.hibernate.impl.SessionImpl.get(SessionImpl.java:815)
    	at org.hibernate.impl.SessionImpl.get(SessionImpl.java:808)
    	at events.EventManager.main(EventManager.java:23)
    Caused by: java.lang.IllegalArgumentException: argument type mismatch
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:597)
    	at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:42)
    	... 20 more
    et voila mes librairie :

    asm.jar
    asm-attrs.jar
    cglib-2.1.3.jar
    commons-collections-2.1.1.jar
    commons-logging-1.0.4.jar
    dom4j-1.6.1.jar
    ehcache-1.2.3.jar
    hibernate3.jar
    jta.jar
    log4j-1.2.11.jar
    mysql-connector-java-5.1.6-bin.jar
    antlr-2.7.6.jar

    pouvez vous me dire d'ou viens l'erreur?
    parce que la je pete un cable!

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, il me semble qu'il faudrait mettre le type string dans le mapping de ta propriété title

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <property name="title" column="title" type="string" not-null="true" length="40"/>
    Bon développement

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 213
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par Nesmontou Voir le message
    Salut, il me semble qu'il faudrait mettre le type string dans le mapping de ta propriété title

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <property name="title" column="title" type="string" not-null="true" length="40"/>
    Bon développement

    cool merci....voila trois jour que je suis larguer a cause de ca!!!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/03/2008, 15h42
  2. Eclipse & colgne mode selection
    Par Soulama dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 27/02/2008, 14h42
  3. ProblemView selection de categorie par défaut(Eclipse 3.2)
    Par gama2ee dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 05/09/2007, 10h40
  4. Problème de Session. Eclipse + Hibernate3 + Oracle v9
    Par LesToulousains dans le forum Hibernate
    Réponses: 2
    Dernier message: 26/04/2007, 09h54
  5. [ECLIPSE 2.1][CHERCHE PLUGIN] selection ligne entiere
    Par jcarre dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 03/12/2003, 16h54

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