如何使用 HQL 从 Oracle 11g table 调用的用户 select

How to select from an Oracle 11g table called User using HQL

在 Oracle 中,如果您命名一个 table 用户,您必须通过在单词用户周围加上引号来查询 table。

这行不通

select * from User

这会起作用

select * from "User"

我的问题是,如何 运行 对 table 命名用户进行休眠 HQL 查询?我试过将“”放在用户周围,转义引号,单引号,但没有任何效果。 HQL 不喜欢这些字符和错误。我用谷歌搜索并搜索了解决方案,但一无所获。

您需要在您的实体映射中转义 table 名称:

@Entity 
@Table(name="`User`")
public class User {
...
}

当你像这样编写 HQL 查询时:

from User

Hibernate 将生成这样的 SQL 查询:

select * from "User"