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] accès à mes DAO


Sujet :

Hibernate Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Points : 8
    Points
    8
    Par défaut [Hibernate] accès à mes DAO
    Bonjour à tous.

    Voilà, j'ai suivi ce tutoriel Java http://java.developpez.com/cours/ (jmd chap 19)

    et lors du déploiement de la classe contenu la methode main, j'ai une exception du à la sessionFactory et je ne sais pas d'ou ça vient?
    Et surtout je voulais savoir est ce qu'il serait possible d'acceder à mes DAO de la façon suivant:
    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
     
    package com.hibernate.main;
     
    import org.hibernate.HibernateException;
     
    import com.hibernate.Personnes;
    import com.hibernate.dao.PersonnesDAO;
    import com.hibernate.dao._RootDAO;
     
    public class Client {
    	public static void main(String[] args) {
    		try {
    			_RootDAO.initialize();
    			PersonnesDAO dao = new PersonnesDAO();
     
    			Personnes liste = dao.get(1);
     
    			System.out.println(liste.getNompersonne());
     
    		} catch (HibernateException e) {
    			e.printStackTrace();
    		}
    	}
    }
    voici l'implementation du DAO/
    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
     
    package com.hibernate.dao;
     
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.springframework.dao.DataAccessException;
     
    import com.hibernate.Personnes;
    import com.hibernate.base.BasePersonnesDAO;
     
    public class PersonnesDAO extends BasePersonnesDAO implements
    		com.hibernate.dao.iface.PersonnesDAO {
     
    	public PersonnesDAO() {
    	}
     
    	public PersonnesDAO(Session session) {
    		super(session);
    	}
     
    	private SessionFactory sessionFactory;
     
    	// methode get
    	public com.hibernate.Personnes get(java.lang.Integer key) {
    		Personnes pers = (Personnes) sessionFactory.getCurrentSession().get("com.hibernate.Personnes", key);
    		return pers;
    	}
     
    	// methode de save
    	public java.lang.Integer save(com.hibernate.Personnes personnes)
    			throws DataAccessException {
     
    		sessionFactory.getCurrentSession().save(personnes);
     
    		return personnes.getId();
     
    	}
     
    	// methode delete
    	public void delete(com.hibernate.Personnes personnes)
    			throws DataAccessException {
    		sessionFactory.getCurrentSession().delete(personnes);
    		System.out.println(personnes.getNompersonne().toString());
    	}
    }
    MERCI DE VOTRE AIDE

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 69
    Points : 76
    Points
    76
    Par défaut
    Salut,

    C'est plus facile si tu communiques l'exception et la stacktrace.

    Aurais-tu un NullPointerException par hasard ? Il me semble que le SessionFactory de ton DAO n'est jamais initialisé.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    et oui c'est ça l'exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Exception in thread "main" java.lang.NullPointerException
    	at com.hibernate.dao.PersonnesDAO.get(PersonnesDAO.java:24)
    	at com.hibernate.main.Client.main(Client.java:15)
    en sachant que client est ma classe Main

    on dirait que cette classe HibernateUtil n'est jamais read dans la methode main

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    Comment faire pour initialiser la SessionFactory de mon DAO ?

    Avez vous une idée?

    Merci

  5. #5
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Points : 412
    Points
    412
    Par défaut
    voila apres avoir générer les classes hibernate;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Session	session = HibernateSessionFactory.getSession();
    Personne personne = new Personne(1,"phil","cmoi","000","","","");
     
    PersonneDAO dao = (PersonneDAO) session;
    session.beginTransaction();
    dao.save(personne);
    session.close();
    j'espère ne pas dire des bétice

    Il y a un plugin eclipse pour générer les classes hibernate dont "HibernateSessionFactory". Mais je ne l'utilise pas car j'utilise un agl donc il y a t'il quelqu"un pour lui donner svp.

  6. #6
    Membre actif Avatar de mOuLi
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Points : 257
    Points
    257
    Par défaut
    Dans la documentation de référence Hibernate (§1.2.5. "Démarrage et aides") il y a le code source d'une classe HibernateUtil contenant une méthode statique getSessionFactory().

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    Merci pour votre aide à tous.

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

Discussions similaires

  1. Accès à mes objets via le pattern DAO
    Par RTK45 dans le forum JDBC
    Réponses: 1
    Dernier message: 21/09/2013, 22h05
  2. [Hibernate Tools] Template DAO
    Par ericw78 dans le forum Hibernate
    Réponses: 3
    Dernier message: 06/04/2007, 11h51
  3. est-il possible d'interdire l'accès à "Mes documents"
    Par lodan dans le forum Sécurité
    Réponses: 3
    Dernier message: 13/12/2006, 10h35
  4. Autoriser l'acces à "Mes Documents"
    Par cach dans le forum Sécurité
    Réponses: 5
    Dernier message: 16/01/2006, 10h37
  5. [Hibernate]Accès aux données BDD via Hibernate
    Par LESOLEIL dans le forum Hibernate
    Réponses: 8
    Dernier message: 17/05/2005, 20h39

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