Spring Data Jpa - 存储库查询以获取 MaxID + 1?



我浏览了Spring CRUD存储库:是否有findOneByMaxXYZColumn((? 和 Spring data jpa。如果没有结果返回默认值,请查找最大值,但我正在从并发环境中的正确实现角度进行更多研究。

在我的Employee表中,ETL 和 NiFi 等工具会将 Employee 添加到 Postgres 数据库中,但是当插入 PK ID 序列时不会保留它可能是任何唯一值。

例如:员工的任何值,如 399、430、439、444 等。如果我们查看,400 到 429 之间的 ID 未被占用,但是当我通过管理员 UI 添加员工时,在这种情况下它应该始终为 445。我正在使用 Spring 引导 JPA 存储库查询

Long findFirstByEmployeeIdAsc();

这样,我将获得最大 ID(员工表的 PK 列中存在的最大值(,并且在将记录保存到数据库中时,我将对 ID 执行 +1。这是使用并发环境的正确方法吗?

有什么方法可以在 Jpa 存储库查询的帮助下获得 MAXID+1 值?如果我们使用它,如果发生任何异常,该 Id 会被消耗吗?

有什么指示吗?

试试这个,希望它能起作用:

@Query(value = "SELECT coalesce(max(id), 0) FROM Product") 
public Long getMaxId();

相关内容

  • 没有找到相关文章

最新更新