我们遇到了以下情况。
请注意,我知道保留字不应该用于表名,但我还是出于好奇问这个问题。
我们使用 Spring + Hibernate 来管理我们的数据库。我正在向名为 Group 的数据库中添加一个新模型。所以,我将我的模型定义为:
@Entity
@Table(name = "group")
public class Group {
...
}
现在,问题是,当重新创建表时,生成的 SQL 如下所示:
create table group (...)
不幸的是,这在 MySQL 中是不允许的,因为 group
是一个保留字。正确的 SQL 应该是:
create table `group`(...)
我有什么办法可以做到这一点吗?
最佳答案
你可以通过这样做强制 Hibernate 转义标识符:
http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-quotedidentifiers
基本上,您可以自己引用它们,然后Hibernate 会根据方言使用适当的引用技术
关于使用 Spring + Hibernate 创建 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4396763/