Hi All,
I am getting Null pointer exception when the query is being parsed by Hibernate. The query is little complicate and I am not sure whether Hibernate supports it or not.
Need help with Hibernate? Read this first:
http://www.hibernate.org/ForumMailingli ... AskForHelp
[b]hibernate3.jar[/b]
[b]Mapping documents:[/b]
[b] Configuration cfg = new Configuration();
SessionFactory sessions = cfg.configure().buildSessionFactory();
Session session = sessions.openSession();
String SQL_QUERY ="select Date(U1.userCreationTime) as Date,count(U1.user_id) as NoofAccountscreated,(select count(U2.user_id) from users U2 where Date(U1.userCreationTime) >= Date(U2.userCreationTime)) as CumulativeTotalNoofAccounts from Users U1 group by Date(U1.userCreationTime) order by Date(U1.userCreationTime) asc";
org.hibernate.Query query = session.createQuery(SQL_QUERY);
bowlerInfo = query.list();
:[/b]
[b]18:26:45,903 INFO [SchemaUpdate] schema update complete
18:26:45,903 INFO [DriverManagerConnectionProvider] cleaning up connection pool: jdbc:mysql://localhost/triporati
18:26:45,903 INFO [SessionFactoryImpl] Checking 0 named queries
18:26:46,231 ERROR [PARSER] *** ERROR: <AST>:0:0: unexpected AST node: query
18:26:46,247 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.hibernate.hql.antlr.HqlSqlBaseWalker.aliasedSelectExpr(HqlSqlBaseWalker.java:1703)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectExprList(HqlSqlBaseWalker.java:1474)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectClause(HqlSqlBaseWalker.java:1041)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:380)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:201)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:151)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:189)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:130)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:83)
at org.hibernate.impl.SessionFactoryImpl.getQuery(SessionFactoryImpl.java:427)
at org.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:884)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:834)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
at jasperHibernate.HibernateReport.getRecordFromDB(HibernateReport.java:51)
at org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:87)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
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:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
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.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
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:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Unknown Source)
18:27:27,956 INFO [DriverManagerConnectionProvider] cleaning up connection pool: jdbc:mysql://localhost/triporati
[/b]
[b]MySql server 5.2:[/b]
[b]Sql is not generated. However the requested query is String SQL_QUERY ="select Date(U1.userCreationTime) as Date,count(U1.user_id) as NoofAccountscreated,(select count(U2.user_id) from users U2 where Date(U1.userCreationTime) >= Date(U2.userCreationTime)) as CumulativeTotalNoofAccounts from Users U1 group by Date(U1.userCreationTime) order by Date(U1.userCreationTime) asc";
:[/b]
[b]Debug level Hibernate log excerpt:[/b]
[b] the schema of the table on which query is fired is
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`USER_ID` int(11) unsigned NOT NULL auto_increment,
`LOGIN` varchar(255) default NULL,
`PASSWORD` varchar(255) default NULL,
`USER_TYPE` char(2) default NULL,
`USER_STATUS` char(1) default NULL,
`USER_FIRST_NAME` varchar(255) default NULL,
`USER_MIDDLE_NAME` varchar(255) default NULL,
`USER_LAST_NAME` varchar(255) default NULL,
`USER_EMAIL` varchar(255) default NULL,
`USER_DESCRIPTION` text,
`USER_LAST_LOGIN_TIME` timestamp NULL default NULL,
`USER_CREATION_TIME` timestamp NULL default NULL,
`USER_PROFILE_CREATION_TIME` timestamp NULL default NULL,
`home_airport_id` int(11) default NULL,
PRIMARY KEY (`USER_ID`),
UNIQUE KEY `USER_ID` (`USER_ID`),
UNIQUE KEY `LOGIN` (`LOGIN`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
[/b]
Any pointers will be greatly appreciated.
Thanks,
Abhijit