Bonjour,

Dans un projet J2EE, je cherche à contruire une Query hibernate à partir d'une phrase HQL:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
select distinct lower(ag.ville) from Vwagentall as ag where ag.id in (select agt.id from net.sa.afi.home.Vwagentall as agt where agt.afigpetab.id=1 and agt.archive=0)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Query query = hibernateSessionFactory.currentSession().createQuery(hql);
Dans la plupart des cas, cette ligne fonctionne bien, mais parfois, sans évènement particulier apparent, une exception est soulevée:
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
 
ERROR 14 juin 2007 15:02:49,898 JDBCExceptionReporter : ORA-01776: cannot modify more than one base table through a join view
 
ERROR 14 juin 2007 15:02:49,898 AbstractFlushingEventListener : Could not synchronize database state with session
org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:65)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
	at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:202)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:230)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
	at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
	at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:41)
	at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:951)
	at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:109)
	at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:88)
	at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1540)
	at net.sa.afi.taglib.dynaTreeView.TreeBuilder.getAttributeValues(TreeBuilder.java:1337)
	at net.sa.afi.taglib.dynaTreeView.TreeBuilder.getFullAttributeName(TreeBuilder.java:859)
	at net.sa.afi.taglib.dynaTreeView.TreeBuilder.buildTreeWithData(TreeBuilder.java:128)
	at net.sa.afi.taglib.DynaTreeView.doTag(DynaTreeView.java:202)
	at org.apache.jsp.gpTree.gpTreeTree_jsp._jspx_meth_afi_tagDynaTreeView_0(gpTreeTree_jsp.java:1064)
	at org.apache.jsp.gpTree.gpTreeTree_jsp._jspx_meth_afi_tagVerticalTabs_0(gpTreeTree_jsp.java:348)
	at org.apache.jsp.gpTree.gpTreeTree_jsp._jspx_meth_netui_form_0(gpTreeTree_jsp.java:283)
	at org.apache.jsp.gpTree.gpTreeTree_jsp._jspx_meth_netui_body_0(gpTreeTree_jsp.java:226)
	at org.apache.jsp.gpTree.gpTreeTree_jsp._jspx_meth_netui_html_0(gpTreeTree_jsp.java:154)
	at org.apache.jsp.gpTree.gpTreeTree_jsp._jspService(gpTreeTree_jsp.java:104)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.beehive.netui.pageflow.PageFlowPageFilter.runPage(PageFlowPageFilter.java:294)
	at org.apache.beehive.netui.pageflow.PageFlowPageFilter.doFilter(PageFlowPageFilter.java:209)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
	at org.apache.beehive.netui.pageflow.internal.DefaultForwardRedirectHandler.forward(DefaultForwardRedirectHandler.java:127)
	at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.doForward(PageFlowRequestProcessor.java:1797)
	at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processForwardConfig(PageFlowRequestProcessor.java:1670)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
	at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processInternal(PageFlowRequestProcessor.java:550)
	at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.process(PageFlowRequestProcessor.java:838)
	at org.apache.beehive.netui.pageflow.AutoRegisterActionServlet.process(AutoRegisterActionServlet.java:634)
	at org.apache.beehive.netui.pageflow.PageFlowActionServlet.process(PageFlowActionServlet.java:156)
	at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at net.sa.afi.httpfilter.HttpFilter.doFilter(HttpFilter.java:74)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.BatchUpdateException: ORA-01776: cannot modify more than one base table through a join view
Si quelqu'un a une idée...