我浏览了Spring CRUD 存储库:是否有 findOneByMaxXYZColumn()?和Spring 数据 jpa。如果没有结果返回默认值,则查找最大值,但我从并发环境中的正确实现角度来看更多。
在我的Employee
表格应用程序中,ETL 和 NiFi 等工具会将 Employee 添加到 Postgres DB 中,但是在插入 PK ID 序列时不会维护它可能是任何唯一值。
例如:Employees 的任何值,如 399、430、439、444 等。如果我们看,400 到 429 之间的 ID 没有被占用,但是当我通过 Admin UI 添加 Employee 时,在这种情况下它应该总是 445。我正在使用 Spring Boot JPA 存储库查询
Long findFirstByEmployeeIdAsc();
这样,我将获得 Max Id (员工表的 PK 列中存在的最大值),并且在将记录保存到 DB 时,我将对 ID 进行 +1。这是使用并发环境的正确方法吗?
有什么方法可以在 Jpa Repository 查询的帮助下获得 MAXID+1 值?如果我们使用它,如果发生任何异常,该 Id 会被消耗掉怎么办?
任何指针?