Bonjour,

j'ai posté il y a peu sur dvp, je commence à me dire que ce site devient indispensable ...

J'ai un souci, je pense, avec mon mapping.

Le hibernate.cfg.xml :

Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE hibernate-configuration PUBLIC
 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 
<hibernate-configuration>
  <session-factory>
    <mapping class="com.xxx.beans.Collab"/>
    <mapping class="com.xxx.beans.CollabDetailGene"/>
    <mapping class="com.xxx.beans.Service"/>
    <mapping class="com.xxx.beans.Societe"/>
  </session-factory>
</hibernate-configuration>

Ma classe CollabDetailGene extends ma classe Collab
Je ne trouve pas d'exemples !
Je spécifie ça comment dans mon cfg.xml ?

Merci par avance.

Edit... Finalement je ne suis pas sur que mon problème vienne de la...

Je vais détailler un peu :
J'ai une requête qui me remplit une List de Collab :

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
Criteria criteria = session.createCriteria(Collab.class)
	.createAlias("soc", "s")
	.createAlias("serv", "se")
	.setFetchMode("soc", FetchMode.JOIN);
 
if(!"".equals(nom))
	criteria.add(Restrictions.like("nom", "%" + nom + "%"));
 
if(!"".equals(societe))
	criteria.add(Restrictions.like("s.lbsoc", "%" + societe + "%"));	
 
if(!"".equals(service))
	criteria.add(Restrictions.like("se.cserv", "%" + service + "%"));
 
if(!"".equals(initof))
	criteria.add(Restrictions.like("initof", "%" + initof + "%")); 
 
if(!"".equals(local))
	criteria.add(Restrictions.like("local", "%" + local + "%"));
 
if(!"".equals(tel))
	criteria.add(Restrictions.like("teleph", "%" + tel + "%"));
 
if(!"".equals(badge))
	criteria.add(Restrictions.like("cbadacc", "%" + badge + "%"));
 
if(!"".equals(monet))
	criteria.add(Restrictions.like("profilmon", "%" + monet + "%"));			
 
collabs = criteria.addOrder(Order.desc("nom")).list();
Cette requete fonctionne bien, enfin, du moins jusqu'à ce que je crée ma classe CollabDetailGene, qui extends Collab, comme je le disais.

Maintenant j'ai un plantage sur cette requête apparemment :

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
GRAVE: "Servlet.service()" pour la servlet ControllerServlet a g�n�r� une exception
org.hibernate.exception.SQLGrammarException: could not execute query
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
	at org.hibernate.loader.Loader.doList(Loader.java:2231)
	at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2125)
	at org.hibernate.loader.Loader.list(Loader.java:2120)
	at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:118)
	at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1596)
	at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:306)
	at com.xxx.dao.CollabDaoImpl.findCollabsBy(CollabDaoImpl.java:86)
	at com.xxx.service.ServiceAccesDaoImpl.findCollabsBy(ServiceAccesDaoImpl.java:43)
	at com.xxx.servlet.ControlServlet.doProcess(ControlServlet.java:133)
	at com.xxx.servlet.ControlServlet.doPost(ControlServlet.java:74)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]'DTYPE' : nom de colonne incorrect.
	at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
	at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
	at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
	at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
	at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown Source)
	at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
	at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
	at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
	at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
	at com.microsoft.jdbc.base.BasePreparedStatement.postImplExecute(Unknown Source)
	at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
	at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
	at com.microsoft.jdbc.base.BasePreparedStatement.executeQuery(Unknown Source)
	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
	at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
	at org.hibernate.loader.Loader.getResultSet(Loader.java:1808)
	at org.hibernate.loader.Loader.doQuery(Loader.java:697)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
	at org.hibernate.loader.Loader.doList(Loader.java:2228)
	... 23 more
Alors que je n'ai fait que coder l'autre classe et quelques fonctions (qui n'exploitent pas Collab) !
De plus le plantage se fait avant même que je n'exploite la nouvelle classe, à un endroit ou cela ne plantait pas avant !
Et si je commente tout ce qui tourne autour de ma classe CollabDetailGene, ça remarche !
Pourquoi ça me plante à la tronche ?
Des idées ?

Merci par avance.