query+++++++++==========from News where id like'1000001%' and subject like '%3%' order by createTime desc
query=========111111from News where id like'1000001%' and subject like '%3%' order by createTime desc
Hibernate: select news0_.id as id61_, news0_.datelimit as datelimit61_, news0_.subject as subject61_, news0_.body as body61_, news0_.createtime as createtime61_, news0_.xmlfile as xmlfile61_, news0_.imgdocid as imgdocid61_ from news news0_ where (news0_.id like '1000001%') and (news0_.subject like '%3%') order by news0_.createtime desc limit ?
query=========111111
org.hibernate.hql.ast.QuerySyntaxException: unexpected end of subtree []
at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:59)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:225)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:158)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:109)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:75)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)
at com.aljoin.oa.core.persistence.HibernateGenericDao.createQuery(HibernateGenericDao.java:114)
at com.aljoin.oa.core.component.QueryManager.find(QueryManager.java:44)
at com.aljoin.oa.core.action.PageAction.calcNumber(PageAction.java:380)
at com.aljoin.oa.core.action.PageAction.calcNumber(PageAction.java:281)
at com.aljoin.oa.news.action.SearchAction.execute(SearchAction.java:44)
at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:283)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:166)
at com.aljoin.oa.core.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:54)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.aljoin.oa.base.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:51)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116)
at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:272)
at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:237)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.opensymphony.webwork.lifecycle.RequestLifecycleFilter.doFilter(RequestLifecycleFilter.java:67)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.aljoin.oa.core.misc.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:19)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.aljoin.oa.core.misc.SessionCheckFilter.doFilter(SessionCheckFilter.java:49)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
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:619)
Caused by: <AST>:0:0: unexpected end of subtree
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2943)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:688)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:544)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:218)
... 56 more
网上查了好多,还是没有解决,我的HQL也没问题,放在数据库中是可以查出来的,可是在web页面就出异常
query=========111111from News where id like'1000001%' and subject like '%3%' order by createTime desc
Hibernate: select news0_.id as id61_, news0_.datelimit as datelimit61_, news0_.subject as subject61_, news0_.body as body61_, news0_.createtime as createtime61_, news0_.xmlfile as xmlfile61_, news0_.imgdocid as imgdocid61_ from news news0_ where (news0_.id like '1000001%') and (news0_.subject like '%3%') order by news0_.createtime desc limit ?
query=========111111
org.hibernate.hql.ast.QuerySyntaxException: unexpected end of subtree []
at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:59)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:225)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:158)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:109)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:75)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)
at com.aljoin.oa.core.persistence.HibernateGenericDao.createQuery(HibernateGenericDao.java:114)
at com.aljoin.oa.core.component.QueryManager.find(QueryManager.java:44)
at com.aljoin.oa.core.action.PageAction.calcNumber(PageAction.java:380)
at com.aljoin.oa.core.action.PageAction.calcNumber(PageAction.java:281)
at com.aljoin.oa.news.action.SearchAction.execute(SearchAction.java:44)
at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:283)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:166)
at com.aljoin.oa.core.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:54)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.aljoin.oa.base.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:51)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116)
at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:272)
at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:237)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.opensymphony.webwork.lifecycle.RequestLifecycleFilter.doFilter(RequestLifecycleFilter.java:67)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.aljoin.oa.core.misc.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:19)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.aljoin.oa.core.misc.SessionCheckFilter.doFilter(SessionCheckFilter.java:49)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
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:619)
Caused by: <AST>:0:0: unexpected end of subtree
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2943)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:688)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:544)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:218)
... 56 more
网上查了好多,还是没有解决,我的HQL也没问题,放在数据库中是可以查出来的,可是在web页面就出异常
public String execute()
throws Exception
{
String query = "";
String calNumQuery = "";
String conditionSql = "";
if(!title.equals(""))
conditionSql = (new StringBuilder(String.valueOf(conditionSql))).append(" and title like '%").append(title).append("%'").toString();
if(!creatorId.equals(""))
{
if(creatorId.endsWith(","))
creatorId = creatorId.substring(0, creatorId.length() - 1);
conditionSql = (new StringBuilder(String.valueOf(conditionSql))).append(" and creator.id=").append(creatorId).toString();
}
if(!body.equals(""))
conditionSql = (new StringBuilder(String.valueOf(conditionSql))).append(" and body like '%").append(body).toString();
if(forumId.equals("0"))
{
query = (new StringBuilder("from Topic t where id like '")).append(OrgnizeService.getCompanyId()).append("%'").append(conditionSql).append(" order by createTime desc").toString();
calNumQuery = (new StringBuilder("select count(t) from Topic t where id like '")).append(OrgnizeService.getCompanyId()).append("%'").append(conditionSql).toString();
} else
{
query = (new StringBuilder("from Topic t where forum.id=")).append(forumId).append(conditionSql).append(" order by createTime desc").toString();
calNumQuery = (new StringBuilder("select count(t) from Topic t where forum.id=")).append(forumId).append(conditionSql).toString();
}
list = calcPageList(query);
calcNumber(calNumQuery);
return "success";
}
queryManager.java里的方法
private String combineQuery(String query) {
System.out.println("query=========111111"+query);
if (query.indexOf(":corpId") > 0)
{ query = StringUtils.replace(query, ":corpId", "'" + OrgnizeService.getCorpId() + "%" + "'");
System.out.println("query=========222222"+query);
}
return query;
}
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping package="com.aljoin.oa.news.model">
<class name="News" table="news" dynamic-update="true">
<id column="id" name="id" length="8" type="java.lang.Long">
<generator class="com.aljoin.oa.id.DocId" />
</id>
<property column="datelimit" name="dateLimit" length="4" type="integer"/>
<property column="subject" name="subject" length="100" type="string"/>
<property column="body" name="body" type="string"/>
<property column="createtime" name="createTime" type="timestamp"/>
<property column="xmlfile" name="xmlFile" length="2000" type="string"/>
<property column="imgdocid" name="imgDocId" length="2000" type="string"/>
<!-- <many-to-one name="pubman" column="pubman" class="com.aljoin.oa.orgnize.model.User"/>
-->
</class>
</hibernate-mapping>
System.out.println("query=========111111"+query);
if (query.indexOf(":corpId") > 0)
{ query = StringUtils.replace(query, ":corpId", "'" + OrgnizeService.getCorpId() + "%" + "'");
System.out.println("query=========222222"+query);
}
return query;
}
第2次到这里 就出异常了, 也没看出哪里错误,唯一的 query 没东西。那应该报空指针异常的啊
this.isSystemAdmin = OrgnizeService.checkIsSysAdm();
String query = "";
String calNumQuery = "";
String conditionSql = "";
if (!(this.subject.equals("")))
conditionSql = conditionSql + " and subject like '%" + this.subject + "%'"; if (!(this.pubmenId.equals(""))) {
if (this.pubmenId.endsWith(","))
this.pubmenId = this.pubmenId.substring(0, this.pubmenId.length() - 1);
conditionSql = conditionSql + " and pubman.id=" + this.pubmenId;
}
if (!(this.timebegin.equals("")))
conditionSql = conditionSql + " and createTime>='" + this.timebegin + "'"; if (!(this.timeend.equals("")))
conditionSql = conditionSql + " and createTime<='" + this.timeend + "'"; query = (new StringBuilder("from News where id like'")).append(OrgnizeService.getCompanyId()).append("%'").append(conditionSql).append(" order by createTime desc").toString();
System.out.println("query+++++++++=========="+query);
list = calcPageList(query);
calcNumber(calNumQuery); // 这里的calNumQuery是不是没有赋值啊。
return "success";
}和2L的 那个比较好像少了个 calNumQuery = (new StringBuilder("select count(t) from Topic t where forum.id=")).append(forumId).append(conditionSql).toString();我该 如何添加赋值?
这样