使用 JPA 以编程方式在 Oracle 中创建序列

Posted

技术标签:

【中文标题】使用 JPA 以编程方式在 Oracle 中创建序列【英文标题】:Creating sequence in Oracle Programmatically using JPA 【发布时间】:2018-10-06 08:34:48 【问题描述】:

我在我的 Spring Boot 项目中使用 spring-boot-starter-data-jpa 来处理数据库内容。

我想以编程方式在 Oracle 中创建一个序列。 我见过许多使用原始查询创建序列的解决方案,但我想从代码中创建一个序列。使用 JPA 有什么我可以做的吗?

我也想得到这个序列号并返回给调用者。

提前致谢!!!

【问题讨论】:

【参考方案1】:

首先,您必须允许 Hibernate(spring-boot-starter-data-jpa 中可用的 JPA 实现之一)创建 DDL 语句,所以在 application.properties 中:

spring.jpa.hibernate.ddl-auto=create

注意,不建议用于生产。

接下来,按以下方式注释您的实体:

@Entity
public class SomeEntity 

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "my_generator")
    @SequenceGenerator(name = "my_generator", sequenceName = "MY_SEQUENCE",  allocationSize = 1)
    private Long id;
    //...

一旦您的应用程序启动,休眠基于您的ddl-auto 配置将为您创建序列:

Hibernate:创建序列 MY_SEQUENCE 以 1 递增 1 开始

您可以阅读有关ddl-autoconfigurations here 的更多信息。

【讨论】:

以上是关于使用 JPA 以编程方式在 Oracle 中创建序列的主要内容,如果未能解决你的问题,请参考以下文章

使用 JPA 2.0 以编程方式加载实体类?

使用 CoreAudio 以编程方式在 Swift 中创建聚合音频设备

使用 KnitR 以编程方式在 R 中创建 Markdown 表

如何以编程方式在 iphone 中创建图表

如何在剑道中创建没有弹出窗口的事件?还是以编程方式创建事件?

以编程方式寻址在 xaml 中创建的画布