Java 从数据库序列中获取下一个值
我在数据库中有一个序列。 我需要得到递增的值。我编写了只支持sql的查询Java 从数据库序列中获取下一个值,java,sql,oracle,hibernate,jpql,Java,Sql,Oracle,Hibernate,Jpql,我在数据库中有一个序列。 我需要得到递增的值。我编写了只支持sql的查询 @Query(value = "SELECT nextval('sequence')", nativeQuery = true) 查询工作正常。但我需要编写查询以获取JPQL中的序列号(支持SQL和oracle数据库)如果您只需要支持oracle SQL,则可以编写: SELECT sequence.nextval FROM dual 如果必须支持多个RDBMS,则需要使用编程配置的本机查询,或者使用类似(免责声明,我
@Query(value = "SELECT nextval('sequence')", nativeQuery = true)
查询工作正常。但我需要编写查询以获取JPQL中的序列号(支持SQL和oracle数据库)如果您只需要支持oracle SQL,则可以编写:
SELECT sequence.nextval FROM dual
如果必须支持多个RDBMS,则需要使用编程配置的本机查询,或者使用类似(免责声明,我为供应商工作)的方法,或者每个方言有一个方法,每个方言上都有一个@query
注释,例如:
@Query(value = "SELECT nextval('sequence')", nativeQuery = true)
int getPostgreSQLSequenceNextValue();
@Query(value = "SELECT sequence.nextval FROM dual", nativeQuery = true)
int getOracleSequenceNextValue();
这当然有点痛苦,但注释就是这样工作的。我不认为你能做到这一点,因为JPA支持的并非所有数据库系统都有序列。谢谢,我如何在@Query中提到方言?@madhuri:你不能在
@Query
中提到方言。我会更新我的答案来说明我的意思