【发布时间】:2015-05-06 01:30:16
【问题描述】:
在 Oracle 中,如果您将表命名为 User,则必须通过在单词 user 周围加上引号来查询该表。
这行不通
select * from User
这会起作用
select * from "User"
我的问题是,如何在名为 User 的表上运行休眠 HQL 查询?我试过把“”放在用户周围,转义引号,单引号,没有用。 HQL 不喜欢那些字符和错误。我用谷歌搜索并搜索了解决方案,但一无所获。
【问题讨论】:
-
提示:不要使用 Oracle 关键字作为表名或列名。你能创建一个存储过程来返回表上的游标吗?
-
是的,那是一个充满自信的时刻,“我以后就可以用引号括起来了!”。创建存储过程以返回表上的游标是一个有趣的想法。我敢打赌这会奏效,但我很好奇是否有更直接的解决方案。
-
为这个表创建一个同义词,有更好的名字。 PS:Oracle 试图向后兼容,因此许多新的关键字仍然可以用作标识符。例如,您仍然可以将表命名为“model”、“join”或“commit”。
-
这是一个好主意,我忘记了同义词!谢谢!
标签: java oracle hibernate hql hibernate-mapping