当前位置: 首页 > 面试题库 >

在PostgreSQL休眠中无法使用名为“用户”的表

姬裕
2023-03-14
问题内容

当我尝试通过JPA /
hibernate持久保存一个名为“用户”的实体时,它将无法正常工作。该表未创建,原因是用户是postgresql中的保留字。除了给表命名以外,还有其他方法可以使此工作吗?


问题答案:

要引用标识符,请使用反勾号:

@Table(name="`users`")

从Hibernate的测试套件中查看以下示例:

https://github.com/hibernate/hibernate-orm/blob/master/hibernate-
core/src/test/java/org/hibernate/test/quote/User.java#L31

Hibernate将自动检测它并将其转换为您正在使用的数据库的适当报价。



 类似资料:
  • 问题内容: 我想在MS SQL中使用hibernate模式创建一个对象,该表的名称为“ user”。这没用!。我认为此问题可能是由表/实体的名称引起的,用户是关键字。拥有名称为“ user”的表该怎么办? 问题答案: 我应该使用重音符号()。

  • 问题内容: 我正在开发将来的多租户Web应用程序,它将需要支持数千个用户。该应用程序是在基于Java的Play之上构建的!使用JPA / Hibernate和postgreSQL的MVC框架。 我看了盖伊·纳尔(Guy Naor)关于在Rails中编写多租户应用程序的演讲,其中他谈到了几种多租户方法(数据隔离度随着列表的增加而降低): 每个客户都有一个单独的数据库 一个为每个客户提供单独的架构和表

  • 问题内容: PostgreSQL似乎不允许创建名为“ user”的数据库表。但是MySQL将允许创建这样的表。 那是因为这是一个关键词吗?但是Hibernate无法识别任何问题(即使我们设置了PostgreSQLDialect)。 问题答案: 是保留字,通常不建议使用保留字作为标识符(表,列)。 如果您坚持要这样做,则必须将表名放在双引号中: 但是,在引用表时,您 总是 需要使用双引号。此外,表名

  • 问题内容: 我正在浏览hibernate文档,并遇到了逆属性的概念。我是Hibernate的新手,所以我很难正确理解该概念。 http://docs.jboss.org/hibernate/orm/3.3/reference/zh- CN/html/collections.html#collections- bidirectional 从上面的代码中,应用于类别,因此我知道类别是相反的一端。 但是

  • 问题内容: 我对 Hibernate 有问题。我尝试解析为List,但抛出异常:。当我调试时,它在线路上出错… 我的示例代码在这里 我的豆子 例外: 我的数据库: 问题答案: 该批注指定列的名称被用作对目标实体的外键。 在上面的类中,连接列的名称设置为。 但是,表上的外键称为 您需要更改表上的列名或您在中使用的名称,以使它们匹配。参见http://docs.jboss.org/hibernate/

  • 问题内容: 我正在寻找展示如何将MongoDB与Hibernate集成的资源(最好是在Spring内),以便我可以在RDBMS和NoSql替代品之间进行切换:有人有这样做的经验吗? 问题答案: 您不能轻易做到这一点。Hibernate的重点是将Java对象映射到关系数据库。尽管Hibernate提取了许多细节,但您仍然需要了解关系数据库如何与诸如外键和主键之类的东西一起工作,以及运行查询对性能的影