将micronaut-data与JDBC结合使用时如何获取DB序列值

时间:2019-10-06 11:47:44

标签: oracle jdbc micronaut micronaut-data

我在我的应用程序中使用了带JDBC的micronaut数据(没有休眠) 我需要使用Oracle DB序列生成主键值

根据他们的官方文档(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存在于micronaut数据库中 (io.micronaut.data.annotation.GeneratedValue)

示例代码:

@Id
@GeneratedValue(策略= GenerationType.SEQUENCE,生成器=“ ID_SEQ”) @SequenceGenerator(sequenceName =“ EMPLOYEE_ID_SEQ”,allocationSize = 1,名称=“ ID_SEQ”)
私有Long employeeId;

以上代码失败,原因:

由以下原因引起: java.lang.NullPointerException :null     在oracle.jdbc.driver.OraclePreparedStatement.setupDbaBindBuffers(OraclePreparedStatement.java:3194)

1 个答案:

答案 0 :(得分:0)

尚不支持序列发生器,但在TODO列表中