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 :

Insertion des données (objects) dans BD à partir d'un combobox RichFaces


Sujet :

JSF Java

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 18
    Par défaut Insertion des données (objects) dans BD à partir d'un combobox RichFaces
    Salut tous le monde,
    j'ai développé une application EJB+JSF qui gère la gestion des soutenances alors ma grande problème que j'ai pas pu la résoudre c'est la création d'une nouvelle soutenance qui a composé d'un étudiant, une salle, une liste d’équipements, une liste des Jurys et une date.
    j'ai consulté le forum pour gérer beaucoup de problèmes qui ont résolu comme la remplissage des combobox et les convertir en objects... mais la problème quand j'insert la nouvelle soutenance elle est ajouté mais n'a aucun de valeur (id_room, id_student_date..) donc je pense qu'il y a des problèmes de relation entre les controleurs et les pages jsp ou dans quelques parts mais vraiment je suis coincé là et j'ai besoin de vos aides et merci, je vais mettre les codes nécessaire pour mieux comprendre la problème.

  2. #2
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut
    problème générale, même je n'arrive pas a voir le problème, essaye de ne pas parler de ton métier mais de ta question technique

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 18
    Par défaut
    Voici le controleur SoutenanceCtrl.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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    package controller;
     
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
     
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
     
    import pfa.esprit.Daos.SoutenanceManager;
    import pfa.esprit.Entities.Soutenance;
     
    public class SoutenanceCtrl {
     
    	private List<Soutenance> vivas=new ArrayList<Soutenance>();
    	private Soutenance viva=new Soutenance();
    	private Date date;
    	private SoutenanceManager soutenanceManager ;
     
     
    	public SoutenanceCtrl() {
    		Context ctx;
    		try {
    			ctx = new InitialContext();
    			soutenanceManager=(SoutenanceManager) ctx.lookup("SoutenanceManagerBean/local");
    		} catch (NamingException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}	
    	}
     
     
    	public Soutenance getViva() {
    		return viva;
    	}
     
    	public void setViva(Soutenance viva) {
    		this.viva = viva;
    	}
     
     
    	public String addVivaPage(){
    			return "add-soutenance";
    			}
     
    	public String ajoutVivaCommand(){
    		try{
    			soutenanceManager.createSoutenance(viva);
    			return ("retour-gestion-viva");
     
    		}
     
    		catch (Exception e) {
    			return "failed";
    		}		
    	}
    	public String deleteVivaAction(){
    		try{
    			soutenanceManager.deleteSoutenance(viva);
    			return "delet-success";
    			}
     
    			catch (Exception e) {
    				return "failed";
    			}		
    	}
     
     
     
    	public  String retourMenu(){
     
    		return "menu";
    	}
    	public  String Lister(){
     
    		return "lister";
    	}
     
    	public void setVivas(List<Soutenance> list) {
    		this.vivas = list;
    	}
     
    	public List<Soutenance> getVivas() {
    		vivas=soutenanceManager.getAll();
    		return vivas;
    	}
     
     
    	public Date getDate() {
    		return date;
    	}
     
    	public void setDate(Date date) {
    		this.date = date;
    	}	
     
    	}
    AjoutSoutenance.jsp
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
    <%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
    <%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>
    <%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
    <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen, projection, tv" />
    <title>Add Viva</title>
    </head>
    <body>
    			<center>
        <f:view>
    	<rich:panel style="border:0;width:60%;text-align:center">
    	<h:form>
    	<rich:panel>
    	<f:facet name="header">
    <h:outputText value="Add a viva"/>
    </f:facet>
    		<table>
    			<tr>
    				<td align="left">      				
    					<h:outputText value="Jury 1"></h:outputText>
    				</td>
    				<td>
    				<rich:comboBox  value="#{teacherCtrl.teacher}" label="jury 1"  required="true" id="jury1" defaultLabel="Select a Jury..." converter="JuryConverter">
    					<f:selectItems value="#{teacherCtrl.selectTeacher}"/>
    				</rich:comboBox>
    				</td>
         		</tr>
         		<tr>
    				<td align="left">      				
    					<h:outputText value="Jury 2"></h:outputText>
    				</td>
    				<td>
    				<rich:comboBox value="#{teacherCtrl.teacher}" label="jury 1"  required="true" id="jury2" defaultLabel="Select a Jury..." converter="JuryConverter">
    					<f:selectItems value="#{teacherCtrl.selectTeacher}"/>
    				</rich:comboBox>
    				</td>
         		</tr>
         		<tr>
    				<td align="left">      				
    					<h:outputText value="Jury 3"></h:outputText>
    				</td>
    				<td>
    				<rich:comboBox value="#{teacherCtrl.teacher}" label="jury 3"  required="true" id="jury3" defaultLabel="Select a Jury..." converter="JuryConverter">
    					<f:selectItems value="#{teacherCtrl.selectTeacher}"/>
    				</rich:comboBox>
    				</td>
         		</tr>
         		<tr>
         			<td align="left">
         			   	<h:outputText value="Equipment 1"></h:outputText>
         			</td>
         			<td>
    					<rich:comboBox value="#{equipmentCtrl.equipment}" label="equipment 1"  required="true" id="equipment1" defaultLabel="Select a equipement..." converter="EquipmentConverter">
          					<f:selectItems value="#{equipmentCtrl.selectEquipment}" />
         				</rich:comboBox>
         			</td>
         		</tr>
         		<tr>
         			<td align="left">
         			   	<h:outputText value="Equipment 2"></h:outputText>
         			</td>
         			<td>
    					<rich:comboBox value="#{equipmentCtrl.equipment}" label="equipment 2"  required="true" id="equipment2" defaultLabel="Select a equipement..." converter="EquipmentConverter">
          					<f:selectItems value="#{equipmentCtrl.selectEquipment}" />
         				</rich:comboBox>
         			</td>
         		</tr>
         		<tr>
         			<td align="left">	
         				<h:outputText value="List Rooms"></h:outputText>
         			</td>
         			<td>
    					<rich:comboBox value="#{roomCtrl.room}" label="rooms"  required="true" id="rooms" defaultLabel="Select a room..." converter="RoomConverter">
          					<f:selectItems value="#{roomCtrl.selectRoom}" />
         				</rich:comboBox>
         			</td>
         		</tr>
         		<tr>
         			<td align="left">
         				<h:outputFormat value="Date"></h:outputFormat>
         			</td>
         			<td>
                		<a4j:outputPanel id="calendar" layout="block">
                        <rich:calendar value="#{calendarBean.selectedDate}"
                            locale="#{calendarBean.locale}"
                            popup="#{calendarBean.popup}"
                            datePattern="#{calendarBean.pattern}"
                            showApplyButton="#{calendarBean.selectedDate}" cellWidth="24px" cellHeight="22px" style="width:200px"/>
                		</a4j:outputPanel>
                	</td>
                </tr>
                </table>
    	<h:commandButton value="Add viva" action="#{soutenanceCtrl.ajoutVivaCommand}">
    	</h:commandButton>
    	</rich:panel>
    	</h:form>
    	</rich:panel>
    	</f:view>
        </center>
    	</body>
    </html>
    et voici un exemple de controleurs pour les salles parce que s'il marche pour les salles ça marche pour les autres objets
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
     
    package controller;
     
    import java.util.ArrayList;
    import java.util.List;
     
    import javax.faces.model.SelectItem;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
     
    import pfa.esprit.Daos.RoomManager;
    import pfa.esprit.Entities.Room;
     
    public class RoomCtrl {
     
    	private List<Room> rooms=new ArrayList<Room>();
    	private List<SelectItem> selectRoom = new ArrayList<SelectItem>();
    	private List<Room> roomList= new ArrayList<Room>();
    	private Room room =new Room();
    	private RoomManager roomManager ;				
     
    				public RoomCtrl() {
    					Context ctx;
    					try {
    						ctx = new InitialContext();
    						roomManager=(RoomManager) ctx.lookup("RoomManagerBean/local");	
    					} catch (NamingException e) {
    						// TODO Auto-generated catch block
    						e.printStackTrace();
    					}	
    				}
     
     
    				public Room getRoom() {
    					return room;
    				}
     
    				public void setRoom(Room room) {
    					this.room = room;
    				}
     
    				public String managerRoomPage(){
    					return "add-Room";
    				}
     
    				public String ajoutRoomAction(){
    					try{
    					roomManager.createRoom(room);
    					return "ajout-success";
    					}
    					catch (Exception e) {
    						return "failed";
    					}		
    				}
    				public String deleteRoomAction(){
    					try{
    						roomManager.deleteRoom(room);
    						return "delete-success";
    						}
    						catch (Exception e) {
    							return "failed";
    						}		
    				}
     
    				public  String retourMenu(){
    					return "menu";
    				}
     
    				public  String Lister(){
    					return "lister";
    				}
     
    				public void setRoom(List<Room> list) {
    					this.rooms = list;
    				}
     
    				public List<Room> getRooms() {
    					rooms=roomManager.getRooms();
    					return rooms;
    				}
     
    				public List<Room> getRoomList() {
     
    			        roomList =roomManager.getRooms();
    			        return roomList;
    			}
     
    			public void setRoomList(List<Room> roomList) {
    			        this.roomList = roomList;
    			}
     
    			public List<SelectItem> getSelectRoom() {
    			        selectRoom.clear();
     
    			        roomList = this.getRoomList();
     
    			        for (Room room : roomList) {
     
    			                selectRoom.add(new SelectItem(room,room.getCode()));
    			        }
     
    			        return selectRoom;
    			}
    							public void setSelectRoom(List<SelectItem> selectRoom) {
    			    this.selectRoom = selectRoom;
    			}
    }

  4. #4
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut
    fait nous voir la trace de l'exception dans la console de ton serveur

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 18
    Par défaut
    bon il y a pas d'exception juste l'ajout d'une nouvelle ligne dans la table Soutenance mais avec des valeurs NULL

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 18
    Par défaut
    Alors pas d'idées pour traverser cette obstacle

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Par défaut
    Bonjour,

    L'ajout en bdd ne donne que des valeurs null ou c'est uniquement tes id qui sont null?

    Serait-il possible de voir le code de création dans le soutenanceManager?

    Cordialement

    Mcfly

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 18
    Par défaut
    Citation Envoyé par mcfly37 Voir le message
    Bonjour,

    L'ajout en bdd ne donne que des valeurs null ou c'est uniquement tes id qui sont null?

    Serait-il possible de voir le code de création dans le soutenanceManager?

    Cordialement

    Mcfly
    je vois pas la différence mais l'ajout dans la base de donnée donne une nouvelle ligne dans le tableau SOUTENANCE qui a des valeurs null.
    sinon pour les combobox qui sont sur l'interface de l'ajout sont remplis de la base de données et j'ai mis pour chaque combobox un converteur (getObject et getString) parce que un object soutenance réunit une liste de Teacher (sous le rôle des jury), Object Student, liste d'Equipment, Object Room et une Date.
    alors pour mieux comprendre voilà l'entité Soutenance
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    package pfa.esprit.Entities;
     
    import java.io.Serializable;
    import java.util.Date;
    import java.util.List;
     
    import javax.persistence.CascadeType;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.OneToMany;
    import javax.persistence.OneToOne;
    import javax.persistence.Table;
     
     
     
    @Table(name="SOUTENANCE")
    @Entity
    public class Soutenance implements Serializable{
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
    	private int id;
    	private Student student;
    	private List<Teacher> jurys;
    	private Mark mark;
    	private List<Equipment> equipments;
    	private Room room;
    	private Date date;
     
    	@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
     
    	public Date getDate() {
    		return date;
    	}
     
    	public void setDate(Date date) {
    		this.date = date;
    	}
     
    	@OneToMany(mappedBy="soutenance",cascade = CascadeType.ALL)
    	public List<Teacher> getJurys() {
    		return jurys;
    	}
    	public void setJurys(List<Teacher> jurys) {
    		this.jurys = jurys;
    	}
     
    	@OneToOne(cascade = CascadeType.ALL)
    	public Student getStudent() {
    		return student;
    	}
     
    	public void setStudent(Student student) {
    		this.student = student;
    	}
     
    	@OneToMany(mappedBy="soutenance",cascade = CascadeType.ALL)
    	public List<Equipment> getEquipments() {
    		return equipments;
    	}
    	public void setEquipments(List<Equipment> equipments) {
    		this.equipments = equipments;
    	}
     
    	public void setMark(Mark mark) {
    		this.mark = mark;
    	}
     
    	@OneToOne(cascade = CascadeType.ALL)
    	public Mark getMark() {
    		return mark;
    	}
     
    	@OneToOne(cascade = CascadeType.ALL)
    	public Room getRoom() {
    		return room;
    	}
     
    	public void setRoom(Room room) {
    		this.room = room;
    	}
     
    	public void createJury(Teacher jury){
    		for(Teacher j:this.jurys){
    			if(j.getName().equals(jury.getName()))return;
    		}
    		if(!this.jurys.contains(jury)){
    			this.jurys.add(jury);
    		}
    	}
    	public void deleteJury(Teacher jury){
    		if(this.jurys.contains(jury)){
    			this.jurys.remove(this.jurys.indexOf(jury));
    		}
    	}
     
    	public void createEquipment(Equipment equipment){
    		for(Equipment e:this.equipments){
    			if(e.getName().equals(equipment.getName()))return;
    		}
    		if(!this.equipments.contains(equipment)){
    			this.equipments.add(equipment);
    		}
    	}
    	public void deleteEquipment(Equipment equipment){
    		if(this.equipments.contains(equipment)){
    			this.equipments.remove(this.equipments.indexOf(equipment));
    		}
    	}
     
    }
    et voilà ici SoutenanceMangager et SoutenanceManagerBean

    SoutenanceManager.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
     
    package pfa.esprit.Daos;
     
    import java.util.Date;
    import java.util.List;
     
    import javax.ejb.Local;
     
    import pfa.esprit.Entities.Equipment;
    import pfa.esprit.Entities.Soutenance;
    import pfa.esprit.Entities.Teacher;
     
    @Local
    public interface SoutenanceManager {
     
    	public void createSoutenance(Soutenance soutenance);
    	public void updateSoutenance(Soutenance soutenance);
    	public void deleteSoutenance(Soutenance soutenance);	
    	public void asociateJury(int idSoutenance, Teacher jury);
    	public void asociateEquipment(int idSoutenance, Equipment equipment);
    	public Soutenance findSoutenanceByName(String name);
    	public void removeSoutenanceById(int id);
    	public Soutenance findSoutenanceById(int id);
    	public List<Soutenance> getAll();
    	public List<Soutenance> getSoutenanceByDate(Date date);
     
    }
    SoutenanceManagerBean.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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
    package pfa.esprit.Daos;
     
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
     
    import javax.ejb.Stateless;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
    import javax.persistence.Query;
     
    import pfa.esprit.Entities.Equipment;
    import pfa.esprit.Entities.Soutenance;
    import pfa.esprit.Entities.Teacher;
     
    @Stateless
    public class SoutenanceManagerBean implements SoutenanceManager{
    	@PersistenceContext(unitName="PFA_Project")
    	EntityManager em;
     
    	public Soutenance findSoutenanceById(int id) {
    		return em.find(Soutenance.class, id);		
    	}
     
    	public List<Soutenance> getAll() {			
    		return (List<Soutenance>) em.createQuery("from Soutenance").getResultList();		
    	}
     
     
    	public List<Soutenance> getSoutenanceByDate(Date date) {
    		   List<Soutenance> list = new ArrayList<Soutenance>(); 
    		   Query query = em.createQuery("SELECT c FROM Soutenance c WHERE c.date = :date ");
    	       list = query.getResultList();
    		   return list;
    		}
     
    	public Soutenance findSoutenanceByName(String name){
    		return em.find(Soutenance.class, name);
    	}
     
    	public void createSoutenance(Soutenance soutenance){
    		em.persist(soutenance);
    	}
     
     
    	public void updateSoutenance(Soutenance soutenance){		
    			em.merge(soutenance);
     
    	}
     
    	public void deleteSoutenance(Soutenance soutenance){
    		em.remove(soutenance);
    		}
     
    	public void asociateJury(int idSoutenance, Teacher jury){
    		if(jury!=null){
    			Soutenance soutenance = this.findSoutenanceById(idSoutenance);
    			soutenance.createJury(jury);
    			em.merge(soutenance);
     
    		}
    	}
     
    	public void asociateEquipment(int idSoutenance, Equipment equipment) {
    		if(equipment!=null){
    			Soutenance soutenance = this.findSoutenanceById(idSoutenance);
    			soutenance.createEquipment(equipment);
    			em.merge(soutenance);
     
    		}		
    	}
     
    	public void removeSoutenanceById(int id) {
    		em.remove(findSoutenanceById(id));
     
    	}
     
     
     
    }
    j'espère que ça aide à mieux comprendre

  9. #9
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Euh... Je ne comprends pas ta logique là.

    Quand tu cliques sur le bouton, la méthode appelée est soutenanceCtrl.ajoutVivaCommand qui va lancer soutenanceManager.createSoutenance(viva);.

    Sauf que ton objet viva, il est instancié dans le bean, et tu n'en fais jamais rien ensuite. Ta page JSF ne fait jamais référence à cet objet. Donc au final, au moment où tu veux persister ton objet, celui-ci est vide. D'où le résultat en base...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 18
    Par défaut
    Citation Envoyé par romaintaz Voir le message
    Euh... Je ne comprends pas ta logique là.

    Quand tu cliques sur le bouton, la méthode appelée est soutenanceCtrl.ajoutVivaCommand qui va lancer soutenanceManager.createSoutenance(viva);.

    Sauf que ton objet viva, il est instancié dans le bean, et tu n'en fais jamais rien ensuite. Ta page JSF ne fait jamais référence à cet objet. Donc au final, au moment où tu veux persister ton objet, celui-ci est vide. D'où le résultat en base...
    j'ai essayé de mettre un controleur(bean) à chaque type d'objet mais aparamant ça complique la tâche. alors comment je peux mettre dans viva qui est dans le bean soutenanceCtrl.java les objets sélectionnés dans chaque combobox dans la partie JSF pour que l'insertion d'une nouvelle viva est faite avec les objets désirés et sélectionnés dans la page JSF?

  11. #11
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    En fait, dans ton code JSF, quand tu utilises un combobox, il faut que sa value pointe sur un attribut de viva.

    Par exemple, tu as ceci dans ton code:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <rich:comboBox value="#{roomCtrl.room}" label="rooms" required="true"
        id="rooms" defaultLabel="Select a room..." converter="RoomConverter">
        <f:selectItems value="#{roomCtrl.selectRoom}"/>
    </rich:comboBox>

    alors qu'il te faudrait avoir :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <rich:comboBox value="#{viva.room}" label="rooms" required="true"
        id="rooms" defaultLabel="Select a room..." converter="RoomConverter">
        <f:selectItems value="#{roomCtrl.selectRoom}"/>
    </rich:comboBox>
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

Discussions similaires

  1. Insertion des données Excel dans une base SQL-Server
    Par cedy-kassy dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 15/03/2012, 11h11
  2. Réponses: 0
    Dernier message: 04/01/2012, 13h47
  3. insertion des données dans BD oracle à partir d'un fichier.txt
    Par karimoscapitated dans le forum Oracle
    Réponses: 0
    Dernier message: 29/07/2009, 13h47
  4. Insertion des données dans une BD à partir de C#
    Par etoile_de_vie dans le forum C#
    Réponses: 9
    Dernier message: 15/04/2008, 09h46
  5. [C#] problème avec l'insertion des données dans MySQL
    Par madica dans le forum Accès aux données
    Réponses: 7
    Dernier message: 08/11/2005, 13h27

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