java - 使用hibernate创建用户表名

标签 java sql-server hibernate

我想用 hibernate 在 MS SQL 中创建一个对象,这个表的名称是“用户”。这是行不通的!。 我认为这个问题可能是由表/实体的名称引起的,用户是关键字。 我应该怎么做才能拥有名为“user”的表?

@Entity
@Table(name = "user")
public class User  {

最佳答案

用方括号将表名括起来:

@Entity
@Table(name = "[user]")
public class User  {

这样 Hibernate 就会在创建表时转义它。如果您通常将所有字段和表名称放在方括号中,那么在设置映射时就无需考虑底层 DBMS。

你必须这样做,这一直困扰着我。 Hibernate 的主要目标之一是将您的代码与底层数据库隔离——我一直不明白为什么方言实现不能正确处理转义保留关键字。

另请参阅:Using database reserved keywords in Hibernate

关于java - 使用hibernate创建用户表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18210519/

相关文章:

java - 谜题中的单词搜索

java - 对于 MySql DB,在 Hibernate(部署在 JBoss 5.1.0 上)中使用大写(与下划线组合)作为列名时出现奇怪的行为

hibernate - 如何从jpa中具有多对多关系的joinable中删除记录

java - 很难理解使用 JPA (spring boot) 的关系数据存储

java - 如何在 JFrame 中创建视口(viewport)?

java - 如何在不使用 “Local variable x defined in an enclosing scope must be final…”的情况下使用数组索引

mysql - SQL 查询仅从另一个表中选择具有一组独占相关实体的结果

sql-server - SQL Server中主键(簇)和簇唯一索引的区别

sql-server - 根据总计计算百分比

java - 在tomcat中共享一个文件夹