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

Hibernate将用户模型保存到Postgres

孙熠彤
2023-03-14
问题内容

我正在通过Hibernate(注释)使用Postgres,但似乎已经无法处理User对象了:

12:09:16,442 ERROR [SchemaExport] Unsuccessful: create table User (id  bigserial not null, password varchar(255), username varchar(255), primary key (id))
12:09:16,442 ERROR [SchemaExport] ERROR: syntax error at or near "User"

如果我手动运行SQL,则必须在表名两边加上引号,因为用户似乎是postgres关键字,但是如何说服hibernate自己做呢?

提前致谢。


问题答案:

使用保留关键字时,需要转义表名。在JPA 1.0中,没有标准化的方法,而Hibernate特定的解决方案是使用反引号:

@Entity
@Table(name="`User`")
public class User {
    ...
}

在JPA 2.0中,标准化语法如下所示:

@Entity
@Table(name="\"User\"")
public class User {
    ...
}

参考文献

  • Hibernate Core文档
    • 5.4。SQL带引号的标识符
  • JPA 2.0规范
    • 2.13数据库对象的命名


 类似资料:
  • 问题内容: 我有一个带有created_by字段的模型,该模型链接到标准Django用户模型。保存模型时,我需要使用当前用户的ID自动填充它。我无法在Admin层执行此操作,因为该网站的大部分内容都不会使用内置的Admin。谁能建议我该怎么做? 问题答案: 如果你希望某些东西在管理员和其他地方都可以使用,则应使用自定义模型形式。基本思想是重写该__init__方法以采用一个额外的参数-reques

  • 我正在尝试将我的模型保存为从spark ml库创建的对象。 但是,它给了我一个错误: 以下是我的依赖项: 我还想将从模型生成的dataframe保存为CSV。

  • 问题内容: 我想通过models.py方法获取当前登录的用户。我想检查用户的角色,并查看它是否可以根据其角色执行某些操作。 models.py: 在这里,该模型被用作内联模型。我想检查当前登录用户的角色,并根据用户角色更新另一个模型。在这里,我需要检查当前用户的角色。我没有使用任何形式或模板,而是完全利用了。是否有任何方法可以进入该方法或检查并更新中另一个模型中的值? 问题答案: 你可以从另一个角

  • 问题内容: 我正在尝试使用hibernate模式写入多个数据库。我已经将写和读/写会话封装在单个会话对象中。但是,当我去保存时,出现很多错误,这些对象已与另一个会话关联:“非法尝试将一个集合与两个打开的会话关联” 这是我的代码: 我试图逐出该物体并冲洗;但是,这会导致“行被另一个事务更新或删除”问题,即使两个会话都指向不同的数据库。 除了上述内容,我还尝试使用hibernate的复制功能。没有错误

  • 当我调用hibernate save时,我会面临这个异常,我不知道如何解决这个问题。在我的例子中,我将join列从PrimaryKey更改为另一列,因此我面临这个异常。我不想保存客户与承销商和我只想保存外键。 我的域模型是:

  • 当我试图将一个实体的值保存到一个Oracle表列中时,我看到了一个例外,该列的属性值为new BigDecimal(“0.0000001”),该列的数据类型为数字(10,7)。具有相同比例的其他值,例如新的BigDecimal(“0.0000012”)将被保存。 以下是我看到的例外 13: 56:56561警告[JDBCExceptionReporter]SQL错误:1438,SQLState:2