【问题标题】:Creating sequence in Oracle Programmatically using JPA使用 JPA 以编程方式在 Oracle 中创建序列
【发布时间】:2018-10-06 08:34:48
【问题描述】:
我在我的 Spring Boot 项目中使用 spring-boot-starter-data-jpa 来处理数据库内容。
我想以编程方式在 Oracle 中创建一个序列。
我见过许多使用原始查询创建序列的解决方案,但我想从代码中创建一个序列。使用 JPA 有什么我可以做的吗?
我也想得到这个序列号并返回给调用者。
提前致谢!!!
【问题讨论】:
标签:
java
database
oracle
spring-boot
spring-data-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 的更多信息。