如何在将微航数据与 JDBC 一起使用时获取数据库序列值



我正在我的应用程序中使用带有JDBC的micronaut数据(无休眠( 我需要使用 Oracle 数据库序列生成主键值

根据他们的官方文档(https://micronaut-projects.github.io/micronaut-data/1.0.x/guide/#jdbc(部分:9.1.4.1 SQL 注释

仅支持一些 JPA 注释,我在列表中没有找到@GeneratedValue和@SequenceGenerator(所以不确定这些是否支持(

此外,文档说,

第 9.1.4.2 节ID 生成 如果您希望对 ID 使用序列,则应调用生成序列值的 SQL,并在调用 save(( 之前分配它。

那么,查询 Oracle 数据库以获取序列值的最佳方法是什么?(与 JPA 不同,我这里没有任何会话/实体管理器(。

已经尝试使用 JPA 注释生成序列:

@GeneratedValue和@SequenceGenerator

还使用,

@GenerateValue存在于微型数据库中 (io.micronaut.data.annotation.Generated Value(

示例代码:

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ID_SEQ"( @SequenceGenerator(序列名称 = "EMPLOYEE_ID_SEQ", 分配大小 = 1, name = "ID_SEQ"(
private Long employeeId;

上面的代码失败,并显示:

原因:java.lang.NullPointerException: null at oracle.jdbc.driver.OraclePreparedStatement.setupDbaBindBuffers(OraclePreparedStatement.java:3194(

序列生成器尚不受支持,但在待办事项列表中

最新更新