我有一个使用JDBC运行良好的查询,但是当切换到hibernate时,它会抛出语法的QueryException(name
是表中使用masterTable
的列):
String editCodeQuery = "select \"name\" from masterTable";
例外情况:
org.hibernate.QueryException: unexpected char: '"' [select "name" from com.lnt.utility.pojo.masterTable
现在,如果我使用这样的查询:
String editCodeQuery = "select name from masterTable";
或者
String editCodeQuery = "Select M.name from masterTable M";
我得到一个异常,如下所示(如果我也在JDBC中使用查询,则得到相同的错误):
org.hibernate.util.JDBCExceptionReporter logExceptions
SEVERE: ERROR: column masterTable0_.name does not exist Position: 8
我必须在HQL中传递特殊字符。如何传递?…请帮忙
最佳答案
Select M.name from masterTable M
上面的查询假设您的类名为masterTable(区分大小写),并且name是类masterTable的属性。
像SELECT、FROM和WHERE等关键字不区分大小写,但是像表和列名这样的属性在HQL中区分大小写。
阅读更多关于HQLhere
关于java - 如何在HQL中传递特殊字符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20858100/