Postgresql 使用JPA而不是本机查询获取postgres中序列的下一个值

Postgresql 使用JPA而不是本机查询获取postgres中序列的下一个值,postgresql,spring-data-jpa,sequence,Postgresql,Spring Data Jpa,Sequence,我在postgres中使用flyway创建了一个序列,应该从10000开始 我希望使用JPA而不是本机查询获取序列的下一个值,因为我在不同的云提供商上运行不同的db平台 我找不到JPA查询来获取序列的下一个值,如果我已经丢失了某些内容,请将我重定向到正确的页面 谢谢你在这方面的帮助 附言:我找到了这个链接,它可以帮助我对本机查询进行同样的操作。 我认为这不可能直接实现 JPA不知道序列。 只有实现知道这些,并利用它们来创建ID 我看到了以下选项,可以让它正常工作: 在数据库中创建包含下一个值的单

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

我希望使用JPA而不是本机查询获取序列的下一个值,因为我在不同的云提供商上运行不同的db平台

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

谢谢你在这方面的帮助

附言:我找到了这个链接,它可以帮助我对本机查询进行同样的操作。
我认为这不可能直接实现

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

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

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

  • 我认为这不可能直接实现

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

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

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