我有一个使用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中传递特殊字符。如何通过?...请帮助
答案 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映射。