gpt4 book ai didi

java - 错误 :org. postgresql.util.PSQLException :ERROR: column userinfo0_. dtype 不存在

转载 作者:行者123 更新时间:2023-12-01 17:48:02 26 4
gpt4 key购买 nike

我正在 Spring boot 中开发一个 Web 应用程序,并使用 PostgreSQL 作为我的数据库。

我有四节课。一名是 parent ,另外三名是 child 。这是一种等级继承。我有父类中 3 个子类的常见字段,当我实现它时,我得到了 dtype 错误,即它说我没有在父类中键入 dtype 列,然后我添加了名为的 dtype 列作为数据库中的 userInfo_type 并手动为其分配值“0”,并且在父类的实体类中我指定了此

@DiscriminatorColumn(name="userInfo_type",discriminatorType = DiscriminatorType.INTEGER,columnDefinition = "0")
)

@DiscriminatorValue("1"),@DiscriminatorValue("2"),@DiscriminatorValue("3")

分别在三个子类中

注意:我没有将 userInfo_type 列添加为四个实体中任何一个的属性之一,也没有在创建数据库表和列的 db 脚本上添加该列,我在 db 中显式添加了该列并添加了 @DiscriminatorColumn 分别到父级和 @DiscriminatoryValue 到子级,在我运行后,我收到此错误

Caused by: org.postgresql.util.PSQLException: ERROR: column userinfo0_.user_info_type does not exist
Hint: Perhaps you meant to reference the column "userinfo0_.userInfo_type".
Position: 901
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2510)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2245)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:311)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:447)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:368)
at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:159)
at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:109)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:60)
... 105 more
2020-03-23 13:16:21.572 DEBUG 8796 --- [nio-8080-exec-1] m.m.a.RequestResponseBodyMethodProcessor : Using 'application/json', given [*/*] and supported [

最佳答案

创建的(手动)列已命名为:userInfo_type,而在将鉴别器字段名称转换为列名称时,Hibernate 使用蛇形大小写 命名时在任何大写字母之前添加下划线 (_)。

简单地说:userInfo_type 解析为 USER_INFO_TYPE 而不是 USERINFO_TYPE

如果您可以手动对表进行操作,则可以将创建的列重命名为USER_INFO_TYPE

否则,您将必须配置 Spring 命名策略 by redefining the corresponding properties within your application configuration .

关于java - 错误 :org. postgresql.util.PSQLException :ERROR: column userinfo0_. dtype 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60833290/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com