使用hibernate创建用户表名

Ema*_*ayi 3 java sql-server hibernate

我想用hibernate在MS SQL中创建一个对象,这个表的名字是"user".这是行不通的!.我认为这个问题可能是由表/实体名称引起的,用户是关键字.如何使用名为"user"的表格?

@Entity
@Table(name = "user")
public class User  {
Run Code Online (Sandbox Code Playgroud)

Jas*_*n C 5

将表名括在方括号中:

@Entity
@Table(name = "[user]")
public class User  {
Run Code Online (Sandbox Code Playgroud)

这样Hibernate会在创建表时将其转义.如果您将所有字段和表名称放在方括号中,则在设置映射时永远不必考虑底层DBMS.

<rant>你总是困扰我,你必须这样做.Hibernate的主要目标之一是将您的代码与底层数据库隔离开来 - 我从未理解为什么方言实现无法正确处理转义保留关键字.</ rant>

另请参阅:在Hibernate中使用数据库保留关键字