【问题标题】:Get nextvalue of sequence in postgres using JPA and not native query使用 JPA 而不是本机查询在 postgres 中获取序列的下一个值
【发布时间】:2019-08-03 19:25:39
【问题描述】:

我在 postgres 中使用 flyway 创建了一个序列,它应该从 10000 开始。

我想使用 JPA 而不是本机查询来获取序列的下一个值,因为我在不同的云提供商处运行不同的数据库平台。

我无法找到 JPA 查询来获取序列的下一个值,如果我已经遗漏了某些内容,请将我重定向到正确的页面..

感谢您在该领域的任何帮助!

P.S:我发现这个链接可以帮助我对原生查询做同样的事情。 postgresql sequence nextval in schema

【问题讨论】:

    标签: postgresql spring-data-jpa sequence


    【解决方案1】:

    我认为这是不可能的。

    JPA 不知道序列。 只有实现知道这些并利用它们来创建 id。

    我看到以下选项可以让它正常工作:

    1. 在数据库中创建一个包含下一个值的单行单列视图。您可以使用本机 SQL 进行查询,这对于所有数据库都应该是相同的,因为它是一个简单的选择。
    2. 使用序列创建一个虚拟实体用于 id 生成,保存一个新实例并让 JPA 填充 id。 一个可怕的解决方法,但纯 JPA。
    3. 咬紧牙关,创建一个简单的类,该类提供正确的本机 SQL 语句以用于当前环境并通过 JdbcTemplate 执行它。

    【讨论】:

      猜你喜欢
      • 2020-12-25
      • 1970-01-01
      • 2022-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 2017-09-24
      • 2018-05-09
      相关资源
      最近更新 更多