gpt4 book ai didi

java - 如何在 hibernate 和 postgres 上同步 id?

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

也许有人面临同样的情况?在我的项目中,我有两项服务。我使用 liquebase 创建数据库表。创建权限表时,我立即使用插入在那里输入 4 个值。一切都在嗡嗡作响。因此,现在在第二个服务(管理面板)中,我创建了一个允许您创建权限的 apish。当我尝试在已经有 4 条记录的权限表中进行记录时,出现错误 ERROR: duplicate key value violates unique constraint "permissions_pkey" .如果我发出 5 次请求,则会发生错误,第 5 次添加记录。提前致谢)

<insert tableName="permissions">
<column name="id" value="1"/>
<column name="name" value="USERS_READ"/>
</insert>
<insert tableName="permissions">
<column name="id" value="2"/>
<column name="name" value="USERS_GET"/>
</insert>
<insert tableName="permissions">
<column name="id" value="3"/>
<column name="name" value="USERS_CREATE"/>
</insert>
<insert tableName="permissions">
<column name="id" value="4"/>
<column name="name" value="USERS_DELETE"/>
</insert>
public class Permission {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
}

最佳答案

如果是标识列,则不必为 id 提供值。 liquibase 脚本中的列。让 DB 为您计算它们。毕竟,这就是使用标识列的全部意义所在。
如果您需要稍后在脚本中以某种方式引用 id,请查找从您正在使用的 RDBMS 中获取最后插入的 id 的方法,通常会有类似 LAST_INSERTED_ID() 的方法。 .或者,使用 name 查找插入的行柱子。

关于java - 如何在 hibernate 和 postgres 上同步 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65064653/

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