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

Développement Web en Java Discussion :

Exception type [java.lang.ClassCastException]


Sujet :

Développement Web en Java

  1. #1
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut Exception type [java.lang.ClassCastException]
    Bonsoir,
    Je travaille sur un projet web JEE, en utilisant page .jsp, servlet, couche service et DAO Hibernate. J'aimerai récupérer les risques associés à un danger. il y a une classe risque, une classe danger, et une autre classe "engendrer" qui contient l'association des risques(0,n)->danger (0-n).
    L'utilisateur tape le nom du danger pour faire une recherche, le résultat de la recherche devra être les risques associés à ce danger.
    voila donc le code, j'ai une erreur de Cast et je ne comprend pas la raison, je pense que l'erreur réside dans la requete DAO et au niveaux des classes.

    DANGERDAOHibernate
    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
    public class DangerDAOHibernate implements DangerDAO {
    	public List findDangerRisques(int id) {
    		Session s = HibernateUtil.getSession();
     
    		List list = s
    				.createQuery(
    						"from Engendrer s, Risque risq where s.id_danger= :id_danger and s.id_risq = risq.id_ris")
    				.setInteger("id_danger", id).list();
     
    		/*
    		 * Engendrer pers = (Engendrer) q.uniqueResult(); =
    		 * s.createQuery("from risque risq where risq.id_risq = :id_risq"
    		 * ).list();
    		 */
     
    		s.close();
    		return list;
    	}
     
    	public Danger findByNom(String nom) {
    		Session s = HibernateUtil.getSession();
     
    		Query q = s.createQuery("from Danger risq where risq.nom= :nom")
    				.setString("nom", nom);
     
    		Danger pers = (Danger) q.uniqueResult();
     
    		s.close();
    		return pers;
    	}
     
    }
    DangerServices
    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
    public class DangerServices {
     
    	private DangerDAO dDAO = new DangerDAOHibernate();
     
    	public Danger checkDangerNom(String nom) throws RechercheExceptions {
    		Danger f = dDAO.findByNom(nom);
    		// Si le titre correspond à une Formation, on vérifie le titre associé
    		if (f != null)
     
    			if (f.getnom().equals(nom))
    				return f;
     
    			else
    				throw new RechercheExceptions(
    						"Aucun résultat correspondant au titre");
    		else
    			throw new RechercheExceptions("Aucune formation disponible");
     
    	}
     
    	/*
    	 * public List getRisqueD(int id) { List l1 = dDAO.findDangerRisques(id);
    	 * return l1; }
    	 */
    //pour récuperer la liste des identifiants risques associé à id_danger
    	public Risque getRisqueD(int i, int id) {
    		List l1 = dDAO.findDangerRisques(id);
    		Risque risque = (Risque) l1.get(i);
    		return risque;
    	}
     
    }
    servlet
    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
    public class RisquesDanger extends HttpServlet {
    	private static final long serialVersionUID = 1L;
     
    	// Si on tente d'accéder directement à la Servlet, on redirige vers
    	// index.jsp
    	protected void doGet(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		getServletContext().getRequestDispatcher("/RechercheDanger.jsp")
    				.forward(request, response);
    	}
     
    	protected void doPost(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		// Récupération des données du formulaire d'index.jsp
    		String nom = request.getParameter("titreSaisi");
    		System.out.println("titre" + nom);
     
    		// Si tous les champs du formulaire ont été remplis
    		if (!"".equals(nom)) {
    			DangerServices DServ = new DangerServices();
     
    			System.out.println("ok");
    			try {
     
    				// Si le service valide l'utilisateur
    				if (DServ.checkDangerNom(nom) != null) {
     
    					Danger f = DServ.checkDangerNom(nom);
     
    					int id_danger = f.getId_danger();
    					request.setAttribute("id_danger", id_danger);
    					System.out.println("id " + id_danger);
     
    					System.out.println("9rit titre");
    					getServletContext().getRequestDispatcher(
    							"/RisqueDanger.jsp").forward(request, response);
    				}
    			} catch (RechercheExceptions e) {
    				// Sinon, renvoi vers le formulaire avec le message d'erreur
    				// retourné par le service
    				request.setAttribute("erreur", e.getMessage());
    				getServletContext()
    						.getRequestDispatcher("/RechercheRisque.jsp").forward(
    								request, response);
    			}
    		}
    		// Si le formulaire est incomplet, renvoi vers le formulaire avec un
    		// message d'erreur
    		else {
    			request.setAttribute("erreur", "Saisies insuffisantes");
    			getServletContext().getRequestDispatcher("/RechercheRisque.jsp")
    					.forward(request, response);
    		}
    	}
    }
    la page du résultat recherche:
    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
    <div class="art-sheet clearfix">
                <div class="art-layout-wrapper">
                    <div class="art-content-layout">
                        <div class="art-content-layout-row">
                            <div class="art-layout-cell art-content"><article class="art-post art-article">
     
     
                    <div class="art-postcontent art-postcontent-0 clearfix"><div class="art-content-layout">
        <div class="art-content-layout-row">
       <h2 class="art-postheader">Les risques du danger</h2>
    									   <div id="content">
    			<div class="flower"></div>
    			<h1 class="title"><a href="#">Liste des Risques</a></h1>
     
    <form action="Client_Servlet"  ></form><div style="width: 100%;" id="tableWrapper"><table id="vsTable"><tbody><tr><td style="width: 10%;" class="title"><div>Reference</div></td><td style="width: 10%;" class="title">
    <div>Nom</div></td><td style="width: 10%;" class="title"><div>Type</div></td><td style="width: 10%;" class="title"><div>Materiel</div></td><td style="width: 10%;" class="title"><div>Facteur aggravant</div></td><td style="width: 10%;" class="title"><div>conséquence</div></td></tr>
     
    <%Integer id_danger = (Integer) request.getAttribute("id_danger");
    DangerDAO cd=new DangerDAOHibernate(); 
    List l1=cd.findDangerRisques(id_danger);
     
    DangerServices DServ = new DangerServices();
     
     
     for(int i=0;i<l1.size();i++)
     {
    	 Risque c1 = DServ.getRisqueD(i, id_danger);
     out.print("<tr class='second'><td class='text' style='width: 10%;'><div class=''>"+c1.getId_ris()+"</div></td><td class='text' style='width: 10%;'><div class=''>"+c1.getNom()+"</div></td><td class='text' style='width: 10%;'><div class=''>"+c1.getType()+"</div></td><td class='text' style='width: 10%;'><div class=''>"+c1.getGravite()+"</div></td><td class='text' style='width: 10%;'><div class=''>"+c1.getProbabilite()+"</div></td><td class='text' style='width: 10%;'><div class=''>"+c1.getConseq()+"</div></tr>");
    }
    %>
     
     
    	</tbody></table></div>		
    		</div>
     
        </div>
    </div>
    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
    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
    juil. 31, 2013 6:42:58 PM org.apache.catalina.core.ApplicationDispatcher invoke
    Grave: "Servlet.service()" pour la servlet jsp a lancé une exception
    java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to modele.Risque
    	at services.DangerServices.getRisqueD(DangerServices.java:38)
    	at org.apache.jsp.RisqueDanger_jsp._jspService(RisqueDanger_jsp.java:146)
    	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:690)
    	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:477)
    	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
    	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
    	at servlets.RisquesDanger.doPost(RisquesDanger.java:49)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)
     
    juil. 31, 2013 6:42:59 PM org.apache.catalina.core.StandardWrapperValve invoke
    Grave: Servlet.service() for servlet [RisquesDanger] in context with path [/GestionSec] threw exception [An exception occurred processing JSP page /RisqueDanger.jsp at line 86
     
    83: 
    84:  for(int i=0;i<l1.size();i++)
    85:  {
    86: 	 Risque c1 = DServ.getRisqueD(i, id_danger);
    87:  out.print("<tr class='second'><td class='text' style='width: 10%;'><div class=''>"+c1.getId_ris()+"</div></td><td class='text' style='width: 10%;'><div class=''>"+c1.getNom()+"</div></td><td class='text' style='width: 10%;'><div class=''>"+c1.getType()+"</div></td><td class='text' style='width: 10%;'><div class=''>"+c1.getGravite()+"</div></td><td class='text' style='width: 10%;'><div class=''>"+c1.getProbabilite()+"</div></td><td class='text' style='width: 10%;'><div class=''>"+c1.getConseq()+"</div></tr>");
    88: }
    89: %>
     
     
    Stacktrace:] with root cause
    java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to modele.Risque
    	at services.DangerServices.getRisqueD(DangerServices.java:38)
    	at org.apache.jsp.RisqueDanger_jsp._jspService(RisqueDanger_jsp.java:146)
    	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:690)
    	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:477)
    	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
    	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
    	at servlets.RisquesDanger.doPost(RisquesDanger.java:49)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)
    Danger
    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
     
    @Entity
    @Table(name = "danger")
    public class Danger {
    	@Id
    	@GeneratedValue(strategy = GenerationType.AUTO)
    	@Column(name = "ID_DANGER")
    	private int id_danger;
     
    	@Column(name = "descritption")
    	private String description;
     
    	@Column(name = "gravite_risque")
    	private String gravite_risque;
     
    	@Column(name = "probabilite_risque")
    	private String probabilite_risque;
     
    	@Column(name = "source")
    	private String source;
    	@Column(name = "nature")
    	private String nature;
    	@Column(name = "consequence")
    	private String consequence;
    	@Column(name = "prticularite")
    	private String particularite;
    	@Column(name = "nom")
    	private String nom;
    	@Column(name = "famille")
    	private String famille;
    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
    @Entity
    @Table(name = "risque")
    public class Risque {
     
    	@Id
    	@GeneratedValue(strategy = GenerationType.AUTO)
    	@Column(name = "ID_RISQ")
    	private int id_ris;
     
    	@Column(name = "nom")
    	private String nom;
     
    	@Column(name = "type")
    	private String type;
     
    	@Column(name = "description")
    	private String description;
    	@Column(name = "departement")
    	private String departement;
     
    	@Column(name = "gravite")
    	private int gravite;
     
    	@Column(name = "probabilite")
    	private int probabilite;
     
    	@Column(name = "consequence")
    	private String conseq;
     
    	public int getId_ris() {
    		return id_ris;
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @Entity
    @Table(name = "engendrer")
    public class Engendrer {
     
    	@Id
    	@GeneratedValue(strategy = GenerationType.AUTO)
    	@Column(name = "id")
    	private int id;
     
    	@Column(name = "id_risq")
    	private int id_risq;
     
    	@Column(name = "id_danger")
    	private int id_danger;

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 639
    Points
    639
    Par défaut
    Bonjour,

    Ta requête remonte actuellement une liste de Engender je pense, hors toi tu cast le résultat de ta requête en Risque (dans la méthode getRisqueD).
    Si tu veux vraiment obtenir des Risques, écris ta requête comme ceci je pense que ça sera mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from Risque risq JOIN Engendrer s ON s.id_risq = risq.id_ris WHERE s.id_danger = :id_danger
    Si ça ne marche pas, tu peux rajouter une trace dans ta console pour savoir quel est le type réel contenu dans la liste ça t'aidera à ajuster la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public Risque getRisqueD(int i, int id) {
    	List l1 = dDAO.findDangerRisques(id);
            System.out.println("type des objets de la liste retournée par findDangerRisques : " + l1.get(i).getClass());
    	Risque risque = (Risque) l1.get(i);
    	return risque;
    }
    Romain.

  3. #3
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut
    Merci!
    J'ai testé avec la requete que vous m'avez proposé et voila que j'ai une autre erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    org.hibernate.hql.ast.QuerySyntaxException: unexpected token: ON near line 1, column 42 [from modele.Risque risq JOIN Engendrer s ON s.id_risq = risq.id_ris WHERE s.id_danger = :id_danger]
    	at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:54)
    	at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:47)
    	at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:82)
    	at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:284)
    	at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:182)
    	at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 639
    Points
    639
    Par défaut
    Bonjour,

    Autant pour moi j'ai mélangé HQL et SQL. On va revenir sur la requête après.

    Ta classe Engender est incorrecte. Elle doit être comme ça :

    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
    @Entity
    @Table(name = "engendrer")
    public class Engendrer {
     
    	@Id
    	@GeneratedValue(strategy = GenerationType.AUTO)
    	@Column(name = "id")
    	private int id;
     
            @OneToOne(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
            @JoinColumn(name="id_risq",insertable=true, updatable=true,nullable=true,unique=true)
    	private Risque risque;
     
            @OneToOne(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
            @JoinColumn(name="id_danger",insertable=true,
            updatable=true,nullable=true,unique=true)
    	private Danger danger;
     
            //getters & setters
     
    }
    Avec Hibernate tu doit penser en terme d'objet pas de base de données.

    Tu peux ensuite faire ta requête comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT risque FROM Engendrer e JOIN e.risque as risque WHERE e.danger.id_danger = :id_danger
    Romain.

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

Discussions similaires

  1. [Jena] Exception java.lang.ClassCastException
    Par may.sou dans le forum Frameworks
    Réponses: 5
    Dernier message: 22/05/2012, 13h50
  2. Exception de type java.lang.NullPointerException
    Par maxi297 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 14/01/2012, 17h26
  3. Réponses: 2
    Dernier message: 24/02/2009, 13h24
  4. Exception java.lang.ClassCastException: java.lang.Long save
    Par *alexandre* dans le forum Hibernate
    Réponses: 3
    Dernier message: 07/02/2009, 10h05
  5. Réponses: 1
    Dernier message: 23/01/2009, 15h07

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