来自hibernate的MySql查询语法错误

时间:2012-09-05 11:44:43

标签: java mysql hibernate

以下查询未执行。这是投掷错误。我无法识别错误。它是由hibenate生成的。 驱动程序类org.gjt.mm.mysql.Driver,方言:org.hibernate.dialect.MySQLDialect 请帮我解决错误。

            JDBC:MySQL的://本地主机:3306 / MYDB         

select this_.Student_Id as Student1_8_0_, this_.student Name as student2_8_0_, 
       this_.address as address8_0_, this_.Father Name as Father4_8_0_, 
       this_.Mother Name as Mother5_8_0_, this_.Primary Contact No as Primary6_8_0_,
       this_.Secondary Contact No as Secondary7_8_0_, this_.Occupation as Occupation8_0_, 
       this_.Mode_Id as Mode9_8_0_, this_.Class_Id as Class10_8_0_, 
       this_.Route_No as Route11_8_0_ 
from Tbl_Student this_

如果我像select * from Tbl_Student这样运行它可以正常工作。

2 个答案:

答案 0 :(得分:0)

您应该使用反向标记来包含用空格分隔的列名:

`this_`.`Father Name`, ..

答案 1 :(得分:0)

那段代码是什么?它是你的HQL语句还是Hibernate生成的SQL语句?

如果是您的HQL声明:
你必须使用属性的名称,i。即Java成员名称作为列名。

如果是Hibernate生成的SQL语句:
您的映射中可能存在错误,并且您在Father_Name,Mother_Name,Primary_Contact_No和Secondary_Contact_No中使用了空格而不是下划线。