unexpected token异常

在开发中需要输入查询,遇到了下面的异常信息


org.hibernate.hql.ast.QuerySyntaxException: unexpected token: % near line 1, column 550 [select bmb.bombId,bmb.userid,bmb.bombType,bmb.bombState,bmb.bombRead,b.bomId,b.bomTopic,b.userid,b.bomRecList,b.bomCopyList,b.bomSecList,b.bomTime,b.bomState,bmb.bomfId,f.bomfName,bbu.userName,bbu.userAccount,bbu.empId,s.userName,s.userAccount from net.bolue.oa.vo.BlOaMailBox as bmb left outer join bmb.bm as b left outer join bmb.bmf as f left outer join bmb.blBasicUser as bbu left outer join b.sender as s where 1=1 and bmb.userid=:userid and bmb.bombType=:bombType and bmb.bombState=:bombState and bmb.bombRead=:bombRead and s.userAccount like %超级管理员% order by b.bomTime desc]
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:54)
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:47)
at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:82)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:284)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:182)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:124)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1770)
at net.bolue.oa.dao.impl.BlOaMailBoxDAOImpl.selectByAll(BlOaMailBoxDAOImpl.java:274)
at net.bolue.oa.service.impl.BlOaMailServiceImpl.findList(BlOaMailServiceImpl.java:164)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy18.findList(Unknown Source)
at net.bolue.oa.action.BlOaMailAction.receiveList(BlOaMailAction.java:127)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
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 net.bolue.util.AccessFilter.doFilter(AccessFilter.java:48)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
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:127)
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:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
at java.lang.Thread.run(Thread.java:619)


我的java代码是:

Session session = getHibernateTemplate().getSessionFactory()
.getCurrentSession();
StringBuffer queryString = new StringBuffer();
queryString.append("select bmb.bombId,bmb.userid,bmb.bombType,bmb.bombState,bmb.bombRead," +
"b.bomId,b.bomTopic,b.userid,b.bomRecList,b.bomCopyList,b.bomSecList,b.bomTime,b.bomState,bmb.bomfId,f.bomfName," +
"bbu.userName,bbu.userAccount,bbu.empId,s.userName,s.userAccount" +" from BlOaMailBox as bmb left outer join bmb.bm as b left outer join bmb.bmf as f left outer join bmb.blBasicUser as bbu left outer join b.sender as s " +"where 1=1");

if (vo.getBomId() != null && !"".equals(vo.getBomId())) {
queryString.append(" and bmb.bomId=:bomId");
}
if (vo.getUserid() != 0) {
queryString.append(" and bmb.userid=:userid");
}
if (vo.getBombType() != null) {
queryString.append(" and bmb.bombType=:bombType");
}
if (vo.getBomfId() != null&&vo.getBomfId() !=0) {
queryString.append(" and bmb.bomfId=:bomfId");
}
if (vo.getBombState() != null) {
queryString.append(" and bmb.bombState=:bombState");
}
if (vo.getBombRead() != null) {
queryString.append(" and bmb.bombRead=:bombRead");
}
//按发送人查询
if(vo.getSendName()!=null&&!"".equals(vo.getSendName())){
queryString.append(" and s.userAccount like "+"%"+vo.getSendName()+"%");
}
//按邮件发送时间排列
if(vo.getSortName()!=null&&vo.getSortName().equals("bomTime")&&vo.getSortorder()!=null&&!vo.getSortorder().equals("")){
queryString.append(" order by b."+ vo.getSortName() +" "+ vo.getSortorder() );
}
//文件夹排列
if(vo.getSortName()!=null&&vo.getSortName().equals("folderName")&&vo.getSortorder()!=null&&!vo.getSortorder().equals("")){
queryString.append(" order by f.bomfName "+ vo.getSortorder() );
}
//按是否已读状态排列
if(vo.getSortName()!=null&&vo.getSortName().equals("mailRead")&&vo.getSortorder()!=null&&!vo.getSortorder().equals("")){
queryString.append(" order by bmb.bombRead "+ vo.getSortorder() );
}
//按发送人排列
if(vo.getSortName()!=null&&vo.getSortName().equals("senderName")&&vo.getSortorder()!=null&&!vo.getSortorder().equals("")){
queryString.append(" order by s.userAccount "+ vo.getSortorder() );
}
//按邮件主题排列
if(vo.getSortName()!=null&&vo.getSortName().equals("bomTopic")&&vo.getSortorder()!=null&&!vo.getSortorder().equals("")){
queryString.append(" order by b.bomTopic "+ vo.getSortorder() );
}
//按邮件类型排列
if(vo.getSortName()!=null&&vo.getSortName().equals("bomType")&&vo.getSortorder()!=null&&!vo.getSortorder().equals("")){
queryString.append(" order by bmb.bombType "+ vo.getSortorder() );
}
Query q = session.createQuery(queryString.toString());

if (vo.getBomId() != null && !"".equals(vo.getBomId())) {
q.setString("bomId", vo.getBomId());
}
if (vo.getUserid() != 0) {
q.setLong("userid", vo.getUserid());
}
if (vo.getBombType() != null) {
q.setInteger("bombType", vo.getBombType());
}
if (vo.getBomfId() != null&&vo.getBomfId() !=0) {
q.setLong("bomfId", vo.getBomfId());
}
if (vo.getBombState() != null) {
q.setInteger("bombState", vo.getBombState());
}
if (vo.getBombRead() != null) {
q.setInteger("bombRead", vo.getBombRead());
}


导致错误的原因是28行,在这种情况下输入数字或英文可以通过,但是输入中文就报上面的错误。这可能是编码的问题,我却从另一个方面解决了这个问题:

将28行的代码也改成下面的形式

queryString.append(" and s.userAccount like :sendName");

并且在后面也加上这段代码

if(vo.getSendName()!=null&&!"".equals(vo.getSendName())){
q.setString("sendName", "%"+vo.getSendName()+"%");
}


这样输入中文就可以通过了。
"Unexpected token ILLEGAL"是JavaScript中的一个错误提示,意味着在代码中发现了非法的标记。这个错误通常是由于以下几种情况引起的: 1. 非法字符:代码中包含了非法的字符,比如特殊符号、中文字符等,这些字符在JavaScript中是不被允许的。要解决这个问题,需要检查代码中的字符,并删除或替换为合法的字符。 2. 编码问题:代码中包含了不被支持的编码格式,导致解析错误。要解决这个问题,可以尝试将代码文件的编码格式更改为合适的格式,比如UTF-8。 3. 代码格式错误:代码中存在语法错误,比如括号不匹配、缺少分号等。要解决这个问题,需要仔细检查代码,确保语法正确,并修复任何错误。 总结来说,"Unexpected token ILLEGAL"错误提示是由于JavaScript代码中存在非法字符、编码问题或语法错误引起的。要解决这个问题,需要检查代码并修复相应的错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [jsUncaught SyntaxError: Unexpected token ILLEGAL 异常问题](https://blog.csdn.net/itxiaolong3/article/details/79389179)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法](https://download.csdn.net/download/weixin_38699593/13182290)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Uncaught SyntaxError : Unexpected token ILLEGAL js错误](https://blog.csdn.net/qq_30979185/article/details/72461563)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值