[hibernate-issues] [Hibernate-JIRA] Closed: (HHH-558) HQL doesn't support multi-byte character in class name and property names

Steve Ebersole (JIRA) noreply at atlassian.com
Mon Mar 21 13:01:16 EDT 2011


     [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-558?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steve Ebersole closed HHH-558.
------------------------------


Closing stale resolved issues

> HQL doesn't support multi-byte character in class name and property names
> -------------------------------------------------------------------------
>
>                 Key: HHH-558
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-558
>             Project: Hibernate Core
>          Issue Type: Bug
>    Affects Versions: 3.0 final, 3.0.1, 3.0.2, 3.0.3, 3.0.4, 3.0.5
>         Environment: Hibernate 3.0.X, hsqldb
>            Reporter: zhangwei
>            Assignee: Joshua Davis
>             Fix For: 3.1 beta 1
>
>
> HQL:
> from User user where user.\u4e2d like '%\u4e2d%'
> when classname or property name contains multi-byte character, Query.list() will throws an exception which says 
> org.hibernate.QueryException: unexpected char: 0xF6 [from com.hsd.security.User user where user.中文 like '%中文%']
> 	at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:165)
> 	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 test.TestHibernate.test中文字符串(TestHibernate.java:11)
> 	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:585)
> 	at junit.framework.TestCase.runTest(TestCase.java:154)
> 	at junit.framework.TestCase.runBare(TestCase.java:127)
> 	at junit.framework.TestResult$1.protect(TestResult.java:106)
> 	at junit.framework.TestResult.runProtected(TestResult.java:124)
> 	at junit.framework.TestResult.run(TestResult.java:109)
> 	at junit.framework.TestCase.run(TestCase.java:118)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:474)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:342)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:194)
> Caused by: line 1:44: unexpected char: 0xF6
> 	at org.hibernate.hql.antlr.HqlBaseLexer.nextToken(HqlBaseLexer.java:281)
> 	at antlr.TokenBuffer.fill(TokenBuffer.java:69)
> 	at antlr.TokenBuffer.LA(TokenBuffer.java:80)
> 	at antlr.LLkParser.LA(LLkParser.java:52)
> 	at org.hibernate.hql.antlr.HqlBaseParser.identPrimary(HqlBaseParser.java:3728)
> 	at org.hibernate.hql.antlr.HqlBaseParser.primaryExpression(HqlBaseParser.java:3311)
> 	at org.hibernate.hql.antlr.HqlBaseParser.atom(HqlBaseParser.java:3031)
> 	at org.hibernate.hql.antlr.HqlBaseParser.unaryExpression(HqlBaseParser.java:2806)
> 	at org.hibernate.hql.antlr.HqlBaseParser.multiplyExpression(HqlBaseParser.java:2687)
> 	at org.hibernate.hql.antlr.HqlBaseParser.additiveExpression(HqlBaseParser.java:2407)
> 	at org.hibernate.hql.antlr.HqlBaseParser.concatenation(HqlBaseParser.java:481)
> 	at org.hibernate.hql.antlr.HqlBaseParser.relationalExpression(HqlBaseParser.java:2195)
> 	at org.hibernate.hql.antlr.HqlBaseParser.equalityExpression(HqlBaseParser.java:2057)
> 	at org.hibernate.hql.antlr.HqlBaseParser.negatedExpression(HqlBaseParser.java:2020)
> 	at org.hibernate.hql.antlr.HqlBaseParser.logicalAndExpression(HqlBaseParser.java:1937)
> 	at org.hibernate.hql.antlr.HqlBaseParser.logicalOrExpression(HqlBaseParser.java:1901)
> 	at org.hibernate.hql.antlr.HqlBaseParser.expression(HqlBaseParser.java:1663)
> 	at org.hibernate.hql.antlr.HqlBaseParser.logicalExpression(HqlBaseParser.java:1834)
> 	at org.hibernate.hql.antlr.HqlBaseParser.whereClause(HqlBaseParser.java:376)
> 	at org.hibernate.hql.antlr.HqlBaseParser.queryRule(HqlBaseParser.java:617)
> 	at org.hibernate.hql.antlr.HqlBaseParser.selectStatement(HqlBaseParser.java:263)
> 	at org.hibernate.hql.antlr.HqlBaseParser.statement(HqlBaseParser.java:150)
> 	at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:209)
> 	at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:127)
> 	... 19 more

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       



More information about the hibernate-issues mailing list