表名称引起的SQLGrammarException错误

时间:2019-02-21 13:16:01

标签: java hibernate spring-boot hql

我有正在执行的hql查询,但是收到一个我不太真正理解其原因的错误。我做了各种测试,但错误似乎不是由我的休假表名称引起的。我什至不能做一个简单的“ from Leave”查询,并且我会收到同样的错误。但是,如果我将工作台数据库中的表重命名为其他任何名称(甚至只是“叶子”),则查询将执行而不会出错。我不明白为什么会这样。是在mysql工作台中留下某种保留字还是什么?

这是我的代码

GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[spUpdateHistoricLoad]
    @idRegister INTEGER,
    @route VARCHAR(100)
AS
BEGIN
    UPDATE tOperation SET ImagenMulti = @route WHERE IDRegister = @idRegister
END

这是我的实体:

public List<StaffRequest> getStaffLeaveRequest() {
    Session currentSession = entityManagerFactory.unwrap(SessionFactory.class).openSession();

    List<StaffRequest> results = currentSession.createQuery(
            "select from Leave").getResultList();

    return results;
}

这是堆栈跟踪

@Entity
@Table(name="leave")
public class Leave 
{
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="Leave_ID")
    int leave_ID;
    ....
}

1 个答案:

答案 0 :(得分:1)

尝试在表名中添加引号。

@Table(name = "\"leave\"")