`
zengfa
  • 浏览: 123225 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

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()+"%");
}


这样输入中文就可以通过了。
分享到:
评论

相关推荐

    JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法

    主要介绍了JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法,结合实例形式分析了javascript提示此类异常的常见原因与相关解决方法,需要的朋友可以参考下

    解决vue打包后刷新页面报错:Unexpected token &lt;

    在使用Vue.js框架开发的项目中,打包后的静态文件部署到生产环境中时,遇到了页面刷新后报错“Unexpected token &lt;”的问题。这个问题表明在解析index.html或者发生错误的页面时,解析器遇到了一个不符合预期的字符...

    Unexpected token c in JSON at position 0 报错信息及解决

    在编程过程中,我们可能会遇到各种错误,其中"Unexpected token c in JSON at position 0"是一个常见的JavaScript解析错误,通常发生在尝试使用`JSON.parse()`函数解析一个预期为JSON格式的字符串时,但该字符串实际...

    NodeJs读取JSON文件格式化时的注意事项

    有时在确保JSON格式正确时仍然会出现unexpected token异常 经过调查发现里面有不会显示的unicode字符 于是确定是UTF-8的问题,utf-8分有dom版和无dom版,一般编辑器不刻意设置会默认保存为带dom的utf8 解决办法是先...

    解决了3.10.0,Unexpected char xxx at xx in header name异常的jar包

    解决了3.10.0Unexpected char 0x20 at 19 in header name: x-upyun-api-version

    error src

    【描述】"this package is error source" 暗示这个压缩包是一个错误来源的集合,可能包含了导致程序异常、崩溃或功能不正常的文件。开发者或技术支持人员会使用这些信息来识别和修复问题。在软件开发中,定位并修复...

    vue 项目build错误异常的解决方法

    Unexpected token: punc (() [src/components/Hello.vue:26,0][static/js/index.d66d806fcdd72b36147b.js:34,6] ERROR in static/js/cell.89bb6f1195b769a2c949.js from UglifyJs Unexpected token: punc (() [src/...

    PHP如何抛出异常处理错误

    异常处理机制通过抛出异常和捕获异常来实现,当程序执行中发生异常情况时,可以中断原有的执行流程,转而执行专门的错误处理代码。 PHP异常处理的关键点包括: 1. 异常(Exception):在PHP中,异常是一个对象,...

    SVN各种错误提示产生原因及处理方法大全

    1. svn: Server sent unexpected return value (500 Internal Server Error) in response to OPTIONS request for 'http://svn.moon.ossxp.com/svn/test' 该错误提示的原因是用户名输入错误。解决方法是检查登录的...

    【微信小程序】编译 .wxss 文件异常解决

    遇到问题  博主最近又重新开始捡起微信小程序,想做点自己的东西。了解到最近小程序工具有做更新,就顺手更新了最新的版本,功能确实比之前强大了不少!  更新归更新,更新后控制台就一直报下面这个错误: ...

    php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACEeval&#40;&#41;d code error

    这个错误提示意味着PHP在解析代码时遇到了不期望的`T_ENCAPSED_AND_WHITESPACE` token,这通常是由于字符串内变量的引用方式不正确,或者在字符串中嵌入了未正确转义的特殊字符,如`$`符号。以下我们将详细探讨这个...

    JS保存、读取、换行、转Json报错处理方法

    但是,开发者在处理这些任务时可能会遇到一些问题,比如在处理包含换行符的文本时,JSON解析可能会抛出异常,错误信息通常会是"Unexpected token ILLEGAL"。这一错误表明解析器遇到了它不能合法处理的字符。以下是...

    WEB开发中错误信息大全

    9. **JSON解析错误**:在处理JSON数据时,如格式不正确,会导致`SyntaxError: Unexpected token`。 10. **模板引擎错误**:如EJS、Pug等模板引擎,错误通常涉及模板语法错误或变量未定义。 11. **安全错误**:如...

    java编译器,解释器构造实践

    词法分析将源代码分解成一个个Token,语法分析构建抽象语法树(AST),语义分析检查程序的正确性,而代码生成则生产平台无关的字节码。 2. **字节码**:Java的字节码是平台无关的,这意味着相同的字节码可以在任何...

    精心整理的ssh2 一些错误问题的记录(推荐)

    ### 错误九:unexpected token: and near line 1, column 172 这通常是在解析HQL或SQL语句时出现的语法错误。检查语句中是否有错误的关键词或符号使用不当。 ### 错误十:You don't have permission to access /on...

    java实现手机短信的发送

    throw new IOException("Unexpected code " + response); } } catch (IOException e) { System.err.println("Error sending SMS: " + e.getMessage()); } } } ``` 3. **错误处理**:上述代码中包含了基本的...

    JSON序列化Redis读取出错问题解决方案

    报错信息显示,错误类型为`NestedServletException`,其内部异常是`JSONException`,提示在解析时预期一个大括号`{`,但实际读取到的是字符串,这通常意味着在反序列化过程中遇到了格式不正确的JSON数据。...

Global site tag (gtag.js) - Google Analytics