如何在HQL中传递特殊字符?

时间:2013-12-31 13:25:25

标签: java hibernate postgresql special-characters

我有一个使用JDBC工作正常的查询,但是当切换到hibernate时,它会抛出QueryException语法(name是我的表masterTable中使用PostGreSql Database}的列:< / p>

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";

OR

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中传递特殊字符。如何通过?...请帮助

2 个答案:

答案 0 :(得分:2)

Select M.name from masterTable M

上面的查询假设您的类名为masterTable(case -sensitive),name是类mastertable的属性。

SELECT,FROM和WHERE等关键字不区分大小写,但是表格和列名称等属性在HQL中区分大小写。

详细了解HQL here

答案 1 :(得分:0)

您应该在select类中使用pojo类变量名而不是表列名。使用@Column(name =“\”name \“”)将表格列名称与pojo映射。