我有一个使用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/

10-13 21:58