gpt4 book ai didi

postgresql - 在 postgres 和 Hibernate 中使用主键序列时出错

转载 作者:行者123 更新时间:2023-12-04 08:59:00 26 4
gpt4 key购买 nike

我使用 JPA/Hibernate 和 postgres 作为我的数据库
我在 postgres 中创建了一个这样的序列:

CREATE SEQUENCE player_sequence
INCREMENT 20
START 1;
我希望 Hibernate 使用上述序列作为主键。
实体的 id 部分是:
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "player_seq")
@SequenceGenerator(name = "player_seq", sequenceName = "player_sequence", allocationSize = 20)
private Integer id;
当我创建一个新播放器并尝试通过 EntityManger.persist 保存它时方法我收到以下错误:

Hibernate: select next_val as id_val from player_sequence for updateorg.hibernate.id.enhanced.TableStructure$1$1 executeERROR: could not read a hi valueorg.postgresql.util.PSQLException: ERROR: column "next_val" does not exist


我不明白我做错了什么
编辑 :
这是persistence.xml的内容:
enter image description here

最佳答案

尝试更正您的 persistence.xml通过这种方式:

<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"
version="2.2">

<persistence-unit name="my-persistence-unit">
<description>...</description>
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>


<properties>
<!-- It was wrong !!! -->
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQL10Dialect" />

<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/basketball" />
<property name="javax.persistence.jdbc.user" value="postgres" />
<property name="javax.persistence.jdbc.password" value="1234" />

<property name="hibernate.show_sql" value="true" />

</properties>

</persistence-unit>

</persistence>

关于postgresql - 在 postgres 和 Hibernate 中使用主键序列时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63651175/

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