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 :

Select avec hibernate


Sujet :

Hibernate Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Select avec hibernate
    J'utilise hibernate pour l'accés et la gestion de ma BD. J'ai réussit à implémenter les ordres insert,update et delete (j'ai testé ça et c'est bon dans la base de données). Tans dis que j'ai échoué à afficher les enregitrements récupérer par la methode list().
    Il est a noté que je récupére la liste (je teste sur le nombre d'éléments et ça correspond bien au nombre des enregistrements de ma table dans la BD) mais lors du casting vers mon bean (classe de mapping correspondante à ma table) une exception java.lang.ClassCastException
    Voici un bout de mon code
    <code>
    package com.benhassine.beans;

    import java.util.Iterator;
    import java.util.List;

    import org.hibernate.HibernateException;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;

    import common.*;


    public class TestClass {
    public TestClass() {
    super();
    }

    public void delete(DOMarcheSimple currentMarche) {
    SessionFactory factory=new Configuration().configure().buildSessionFactory();
    Session session=factory.openSession();
    Transaction tr=session.beginTransaction();
    try{
    session.delete(currentMarche);
    tr.commit();
    }catch(HibernateException e){
    e.printStackTrace();
    if(tr!=null && tr.isActive()){
    tr.rollback();
    }
    }
    catch(Exception e){
    e.printStackTrace();
    if(tr!=null && tr.isActive()){
    tr.rollback();
    }
    }
    session.close();

    }

    public void insert(DOMarcheSimple currentMarche) {
    // TODO Auto-generated method stub
    SessionFactory factory=new Configuration().configure().buildSessionFactory();
    Session session=factory.openSession();
    Transaction tr=session.beginTransaction();
    try{
    session.save(currentMarche);
    tr.commit();
    }catch(HibernateException e){
    e.printStackTrace();
    if(tr!=null && tr.isActive()){
    tr.rollback();
    }
    }
    session.close();
    }

    public static List select() {
    SessionFactory factory=new Configuration().configure().buildSessionFactory();
    Session session=factory.openSession();
    Transaction tr=session.beginTransaction();
    List listMarche=null;
    try{
    listMarche=session.createSQLQuery("select * from marche2").list();
    tr.commit();
    }catch(HibernateException e){
    e.printStackTrace();
    if(tr!=null && tr.isActive()){
    tr.rollback();
    }
    }
    session.close();
    return listMarche;
    }

    public void update(DOMarcheSimple currentMarche) {
    SessionFactory factory=new Configuration().configure().buildSessionFactory();
    Session session=factory.openSession();
    Transaction tr=session.beginTransaction();
    String strQuery="update marche2 M " +
    "set M.DES_MARCHE = "+"'"+currentMarche.getDesMarche()+"'"+","+" "+
    "M.ADJUDICATAIRE = "+"'"+currentMarche.getAdjuMarche()+"'"+","+" "+
    "M.DATE_APPROBATION = "+"'"+currentMarche.getDateApprobation()+"'"+" "+
    "where M.N_MARCHE = "+"'"+currentMarche.getNumMarche()+"'"+" ";
    System.out.println(strQuery);
    try{
    //session.createSQLQuery(strQuery).executeUpdate();
    session.saveOrUpdate(currentMarche);
    tr.commit();
    }catch(HibernateException e){
    e.printStackTrace();
    if(tr!=null && tr.isActive()){
    tr.rollback();
    }
    }
    session.close();
    }
    public static void main(String[] args){
    List list=TestClass.select();
    Iterator it=list.iterator();
    int i=0;
    System.out.println("Nombre de lignes retournees = "+list.size());
    while (it.hasNext())
    {
    i++;
    try{
    DOMarcheSimple currentBean=(DOMarcheSimple) it.next();
    System.out.println("("+i+")"+currentBean.getNumMarche()+" "+
    currentBean.getDesMarche()+" "+
    currentBean.getAdjuMarche()+" "+
    currentBean.getDateApprobation());
    }catch (ClassCastException e){
    e.printStackTrace();
    //System.out.println("Erreur de conversion du bean : "+e.getMessage());
    }
    catch (Exception e){
    e.printStackTrace();
    //System.out.println("Erreur Inconnue : "+e.getMessage());
    }
    }
    }

    }

    </code>

  2. #2
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Loupé pour les balises Code, ce n'est pas des <> mais des [], il ne reste plus qu'à éditer ton code

  3. #3
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    listMarche=session.createQuery("from DOMarcheSimple").list();
    Si DOMarcheSimple correspond à ta table marche2.

    J'ai remplacé ta SQL query, par une requête HQL.

Discussions similaires

  1. JPA + Hibernate : faire un select avec une null value
    Par bubulemaster dans le forum Persistance des données
    Réponses: 2
    Dernier message: 17/06/2010, 10h24
  2. Select dans une vue avec hibernate
    Par Sniper37 dans le forum Hibernate
    Réponses: 1
    Dernier message: 04/03/2009, 16h25
  3. Réponses: 3
    Dernier message: 27/04/2007, 16h31
  4. pb de select avec size avec choix multiple
    Par La_picolle dans le forum ASP
    Réponses: 10
    Dernier message: 28/08/2003, 15h21
  5. requete SELECT avec un nombre constant
    Par gurumeditation dans le forum Requêtes
    Réponses: 3
    Dernier message: 04/07/2003, 20h04

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