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

JSF Java Discussion :

jsf one to many hibernate


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 18
    Par défaut jsf one to many hibernate
    bonjour,

    je débute hibernate /jsf.
    J sais pas comment exprimer une relation one to many.
    j'explique: 2 table: module et elementmodule.
    j'ai exprimé la relation de one-to-many dans le fichier de configuration Module.
    mais je sais pas quoi faire après, pr permettre a l'Admin d'accéder au elementmodule(x) en cliquant juste sur le module(x) et ainsi de suite.
    j'ai déjà lister les modules mais vraiment je sais pas quoi faire pour afficher les elementmodules.

    je suis bloquée.
    Merci a ceux qui vont m'aider

  2. #2
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 18
    Par défaut jsf one to many
    si quelqu'un pourra m'aider ou mm me diriger vers une exemple/tuto, je serai reconnaissante.

  3. #3
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    tu peux utiliser deux dataTable imbriqués, ou le composant subTable de Richfaces, ou même deux dataTable ou une liste de modules et lorsque tu en sélectionne un, tu recupere la liste des éléments.

    tu as l'embarras du choix, tout depend du design de ta page et des composants que tu va utiliser.

  4. #4
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 18
    Par défaut jsf one to many
    Merci pour votre réponse

    je sais pas, si vous avez un exemple de ça svp; (j'utilise pas RicheFaces)
    n'oubliez pas que je suis encore débutante

  5. #5
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Citation Envoyé par janatte Voir le message
    Merci pour votre réponse

    je sais pas, si vous avez un exemple de ça svp; (j'utilise pas RicheFaces)
    n'oubliez pas que je suis encore débutante
    prend la solution qui te convient, si tu as des soucis, poste le code on t'aidera à résoudre les problèmes.
    il y'a eu beaucoup de discussion sur ce sujet, tu peux les retrouver sur le forum.

  6. #6
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 18
    Par défaut jsf one to many
    voila mes beans:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class Module {
     
    	private int id_module;
    	private String libelle;
    	Filiere filiere;
    	Set <Elementmodule> unite; //getters/setters
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class Elementmodule {
     
    	int id_elementmodule;
    	int numero_element;
    	String elementmodule;  //getters/setters
    j'ai déjà déclarer la méthode d'ajout pour (module et elementmodule).

    voila la classe Liste_module:
    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
     
    public class Liste_module_manager {
     
     
    private List<Module> modules=new ArrayList();
     
    	public Liste_module_manager()
    	{
    		Session session = HibernateUtil.getSessionFactory().openSession();
    		Transaction tx = session.beginTransaction();
     
    		String requete="from Module";
    		modules=session.createQuery(requete).list();
    		Iterator It=modules.iterator();
    		while(It.hasNext())
    		{
    			Module M=(Module)It.next();
    			System.out.println(M.getFiliere().getLibelle());
    		}
    		tx.commit();
    		session.close();
    		HibernateUtil.getSessionFactory().close(); //getters/setters
    	}
    Et la classe Liste_element:
    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
    public class Liste_element {
     
    	private List<Elementmodules> element=new ArrayList();
    	private Module module;
     
     
    	public Liste_element()
    	{
    		FacesContext fc = FacesContext.getCurrentInstance();
    		ModuleCourant bean = (ModuleCourant) fc.getExternalContext().getSessionMap().get("moduleCourant");
    		this.module=bean.getMod_select();
     
    		Session session = HibernateUtil.getSessionFactory().openSession();
    		Transaction tx = session.beginTransaction();
     
    		String requete="from Elementmodules where id_module=?";
    		element=session.createQuery(requete).setInteger(0, this.module.getId()).list();
    		System.out.println(this.module.getLibelle());
    		tx.commit();
    		session.close();
    		HibernateUtil.getSessionFactory().close();//getters/setters
    	}
    j'ai aussi créer la classe ModuleCourant:
    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
    public class ModuleCourant 
    	{
    		Module mod_select;
     
     
    		public void selectmodule(ActionEvent evt)
    		{
    		    // On récupère la datatable.
    		    HtmlDataTable table = getParentDatatable((UIComponent) evt.getSource());
     
    		    // On récupère l'objet affiché à la bonne ligne de la datatable.
    			this.mod_select = (Module) table.getRowData();
    		    System.out.println("Je suis dans Module Courant");
     
    		    // On récupère aussi son index
    		    int index = table.getRowIndex();
     
    		    // Suite du traitement sur l'objet sélectionné.
    		}
     
    		private HtmlDataTable getParentDatatable(UIComponent compo) 
    		{
    		    if (compo == null) {
    		        return null;
    		    }
    		    if (compo instanceof HtmlDataTable) {
    		        return (HtmlDataTable) compo;
    		    }
    		    return getParentDatatable(compo.getParent());
    		}
    lorsque je crée une page pr lister les modules , ça marche bien mais lorsque je clique sur un module il m'affiche le message suivant:
    Exception while calling encodeEnd on : {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /forms/ajouter_unite_module.jsp][Class: javax.faces.component.html.HtmlOutputText,Id: _idJsp0]}

    Caused by:
    java.lang.NullPointerException - Cannot get value for expression '#{listelement.module.libelle}'
    Aider moi svp???!!!!!

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/06/2007, 08h30
  2. [Hibernate] Relation one to many
    Par BRAUKRIS dans le forum Hibernate
    Réponses: 2
    Dernier message: 23/08/2006, 11h51
  3. [Hibernate] Mapping one-to-many + cle composite
    Par brainstorm dans le forum Hibernate
    Réponses: 2
    Dernier message: 23/06/2006, 10h51
  4. [hibernate] one-to-many et clé etrangère
    Par K-Kaï dans le forum Hibernate
    Réponses: 27
    Dernier message: 18/05/2006, 10h46
  5. [hibernate] relation one-to-many avec plusieurs clés
    Par seb_fou dans le forum Hibernate
    Réponses: 6
    Dernier message: 16/03/2006, 14h47

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