Bonjour a tous
Je développe une appli web en J2EE et j'utilise Hibernate.
Pour mon appli j'ai besoin d'extraire des infos de fichiers Excel.
Je dois inserer des clients dans ma base.
Tout fonctionnne correctement sauf lorqsu'il y a une simple cote dans leur nom ( ex : CIAT (Cie Industrielle d'Applications Thermiques)).

avant d'inserer ce client je teste d'après le nom si il est présent dans la base et c'est à ce moment que ça plante .
Voici un bout de mon code:

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
@SuppressWarnings("unchecked")
	private void loadClient(Workbook wb) //Client
	{
		Sheet maFeuille= wb.getSheet("Clients");
		System.out.println("Nombre de Clients :::::::::::::::::::::::::: "+maFeuille.getRows());
		Client c= new Client();
		for(int i=1; i<maFeuille.getRows(); i++) // pour chaque lignes
		{
			c =new Client();
			c.setLastmaj("Excel "+new Date());
			c.setRaisonsoc(maFeuille.getCell(0,i).getContents());
			c.setActivite(maFeuille.getCell(1,i).getContents());
			//System.out.println("contenu :"+maFeuille.getCell(2,i).getContents());
			setNbemploye(c, maFeuille.getCell(2,i).getContents());
			c.setMaisonmere(maFeuille.getCell(3,i).getContents());
			setSecteurcap(c, maFeuille.getCell(4,i).getContents());
			c.setNumnomrue(maFeuille.getCell(5,i).getContents());
			c.setLieubp(maFeuille.getCell(6,i).getContents());
			setCP(c, maFeuille.getCell(8,i).getContents());
			c.setVille(maFeuille.getCell(9,i).getContents());
			c.setPays(maFeuille.getCell(10,i).getContents());
			c.setSite(maFeuille.getCell(11,i).getContents());
			c.setContactcap(maFeuille.getCell(12,i).getContents());
			try {
				Session sessionHibernate = HibernateUtil.currentSession();
				System.out.println("FROM Client WHERE "+ Client.PROP_RAISONSOC+"='"+c.getRaisonsoc()+"'");
				List<Client> isPresent = (List<Client>)sessionHibernate.find("FROM Client WHERE "+ Client.PROP_RAISONSOC+" ='"+c.getRaisonsoc()+"'");
				if(isPresent.isEmpty())// test pour savoir si le client est présent, si oui on ne fait rien sinon on enregistre le nouveau.
				{
					Transaction tx = sessionHibernate.beginTransaction();
					sessionHibernate.save(c);
					tx.commit();
				}
				HibernateUtil.closeSession();
			} catch (HibernateException e) {
				System.out.println("Erreur de sauvegarde du client :"+c.getRaisonsoc());
				e.printStackTrace();
			}
		}
	}

et voici ce que j'ai dans la console :
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
29 oct. 2007 17:42:00 org.apache.catalina.loader.WebappClassLoader loadClass
INFO: Illegal access: this web application instance has been stopped already.  Could not load java.net.BindException.  The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1248)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1208)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
	at com.mysql.jdbc.CommunicationsException.<init>(CommunicationsException.java:161)
	at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2759)
	at com.mysql.jdbc.MysqlIO.quit(MysqlIO.java:1410)
	at com.mysql.jdbc.Connection.realClose(Connection.java:4900)
	at com.mysql.jdbc.Connection.cleanup(Connection.java:2061)
	at com.mysql.jdbc.Connection.finalize(Connection.java:3376)
	at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
	at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
	at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
	at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)
29 oct. 2007 17:42:00 net.sf.hibernate.connection.DriverManagerConnectionProvider close
INFO: cleaning up connection pool: jdbc:mysql://localhost/clientoracle
Nombre de Clients :::::::::::::::::::::::::: 3
FROM Client WHERE Raisonsoc='CIAT (Cie Industrielle d'Applications Thermiques)'
Erreur de sauvegarde du client :CIAT (Cie Industrielle d'Applications Thermiques)
net.sf.hibernate.QueryException: Incorrect query syntax [FROM com.capgemini.clientoracle.modele.Client WHERE Raisonsoc ='CIAT (Cie Industrielle d'Applications Thermiques)']
	at net.sf.hibernate.hql.QueryTranslator.compile(QueryTranslator.java:166)
	at net.sf.hibernate.hql.QueryTranslator.compile(QueryTranslator.java:138)
	at net.sf.hibernate.impl.SessionFactoryImpl.getQuery(SessionFactoryImpl.java:294)
	at net.sf.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:1562)
	at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1533)
	at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1521)
	at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1513)
	at com.capgemini.clientoracle.traitements.excel.ExtractExcel.loadClient(ExtractExcel.java:173)
	at com.capgemini.clientoracle.traitements.excel.ExtractExcel.extraire(ExtractExcel.java:35)
	at com.capgemini.clientoracle.servlets.ServletImportation.doPost(ServletImportation.java:23)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
	at java.lang.Thread.run(Thread.java:595)
Caused by: java.util.NoSuchElementException
	at java.util.LinkedList.remove(LinkedList.java:644)
	at java.util.LinkedList.removeLast(LinkedList.java:144)
	at net.sf.hibernate.hql.WhereParser.closeExpression(WhereParser.java:279)
	at net.sf.hibernate.hql.WhereParser.token(WhereParser.java:233)
	at net.sf.hibernate.hql.WhereParser.end(WhereParser.java:275)
	at net.sf.hibernate.hql.ClauseParser.endChild(ClauseParser.java:100)
	at net.sf.hibernate.hql.ClauseParser.end(ClauseParser.java:108)
	at net.sf.hibernate.hql.PreprocessingParser.end(PreprocessingParser.java:143)
	at net.sf.hibernate.hql.ParserHelper.parse(ParserHelper.java:30)
	at net.sf.hibernate.hql.QueryTranslator.compile(QueryTranslator.java:149)
	... 25 more
FROM Client WHERE Raisonsoc='CIAT (Cie Industrielle d'Applications Thermiques)'
Erreur de sauvegarde du client :CIAT (Cie Industrielle d'Applications Thermiques)
net.sf.hibernate.QueryException: Incorrect query syntax [FROM com.capgemini.clientoracle.modele.Client WHERE Raisonsoc ='CIAT (Cie Industrielle d'Applications Thermiques)']
	at net.sf.hibernate.hql.QueryTranslator.compile(QueryTranslator.java:166)
	at net.sf.hibernate.hql.QueryTranslator.compile(QueryTranslator.java:138)
	at net.sf.hibernate.impl.SessionFactoryImpl.getQuery(SessionFactoryImpl.java:294)
	at net.sf.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:1562)
	at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1533)
	at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1521)
	at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1513)
	at com.capgemini.clientoracle.traitements.excel.ExtractExcel.loadClient(ExtractExcel.java:173)
	at com.capgemini.clientoracle.traitements.excel.ExtractExcel.extraire(ExtractExcel.java:35)
	at com.capgemini.clientoracle.servlets.ServletImportation.doPost(ServletImportation.java:23)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
	at java.lang.Thread.run(Thread.java:595)
Caused by: java.util.NoSuchElementException
	at java.util.LinkedList.remove(LinkedList.java:644)
	at java.util.LinkedList.removeLast(LinkedList.java:144)
	at net.sf.hibernate.hql.WhereParser.closeExpression(WhereParser.java:279)
	at net.sf.hibernate.hql.WhereParser.token(WhereParser.java:233)
	at net.sf.hibernate.hql.WhereParser.end(WhereParser.java:275)
	at net.sf.hibernate.hql.ClauseParser.endChild(ClauseParser.java:100)
	at net.sf.hibernate.hql.ClauseParser.end(ClauseParser.java:108)
	at net.sf.hibernate.hql.PreprocessingParser.end(PreprocessingParser.java:143)
	at net.sf.hibernate.hql.ParserHelper.parse(ParserHelper.java:30)
	at net.sf.hibernate.hql.QueryTranslator.compile(QueryTranslator.java:149)
	... 25 more
Nombre de Projets :::::::::::::::::::::::::: 2
Nombre d'interClient :::::::::::::::::::::::::: 1
Nombre d'interOracle :::::::::::::::::::::::::: 1
J'ai épuiser mon stock d'idées j'ai essayé des tas de chose en doublant les simples cotes, en mettant \' ou \".
Si vous avez une idées aidez moi.
Merci