使用hibernate创建用户表名

时间:2013-08-13 13:31:08

标签: java sql-server hibernate

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

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

2 个答案:

答案 0 :(得分:5)

将表名括在方括号中:

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

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

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

另请参阅:Using database reserved keywords in Hibernate

答案 1 :(得分:1)

我应该使用重音(`)。对于hibernate中的use关键字,我们必须在关键字周围使用(`)。

@Entity
@Table(name = "`user`")
public class CompanyUser extends