使用 Spring + Hibernate 创建 MySQL 表

标签 mysql hibernate spring object-persistence

我们遇到了以下情况。

请注意,我知道保留字不应该用于表名,但我还是出于好奇问这个问题。

我们使用 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/

相关文章:

php - 我想制作删除按钮

java - Spring的NamedParameterJDBCTemplate加入Hibernate的 session ?

java - 当我们尝试使用 @Value 注释从 appliction.properties 访问值时,trim() 不起作用

java - hibernate中Session类的 "update"方法和Query类的 "executeupdate"方法有什么区别,什么时候使用哪个方法?

spring - 使用 Spring-Security DB 登录的 Jersey 不断重定向到登录页面

php - 使用 laravel 高级 where 子句运行查询

php - 从动态下拉菜单查询 MYSQL 数据库

mysql - 如何更改行计数顺序

java - session.createQuery() 在 spring 中不返回列表

java - Apache Tiles 和 Spring MVC 中的全局异常页面