提问人:Jack 提问时间:2/25/2023 最后编辑:Jack 更新时间:2/28/2023 访问量:315
使用 SQL 脚本创建休眠序列?
Hibernate sequence creation with SQL script?
问:
在我的 Spring Boot 应用程序中,我想对每个实体使用序列,如下所示:
@Entity
public class Author {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "author_gen")
@SequenceGenerator(name="author_gen", sequenceName = "author_seq")
private Long id;
...
}
关于数据库端的序列生成,有不同类型的用法。所以;
1) 当仅使用 Hibernate 时,上述实现是否足以在数据库上创建序列?
2)除了上面的注释之外,当我使用Flyway或Spring Boot应用程序时,我是否还需要在数据库端手动创建序列?schema.sql
答:
1赞
jhonatapers
2/27/2023
#1
是的,这将为您创建一个序列。
您只需要在 jpa 属性中告知一些事情。
以下是我的应用的属性:
春天:
JPA:
show-sql: true
properties:
hibernate:
default_schema: controle_financeiro #if you have a default schema, if not you need to put it in the schema annotation = "your sequence schema"
auto_quote_keyword: true
ddl-auto: create #!!MORE IMPORTANT!! here you inform to create the mapped entities
format_sql: false #if you need formatted sql code
database: postgresql
database-platform: org.hibernate.dialect.PostgreSQLDialect #plataform
open-in-view: false
generate-ddl: true #if you need the generated DDL code, it will appear in the console
我用 JPA 创建的序列
评论
0赞
Jack
2/27/2023
谢谢朋友,投了赞成票。实际上,我对使用Hibernate / JPA或SQL脚本创建数据库元素感到困惑。例如,在使用 Flyway 时,我们禁用 ,然后,除了通知开发人员该表使用了序列之外,是否还需要使用?ddl-auto
@SequenceGenerator()
0赞
jhonatapers
2/28/2023
还有其他几种方法可以在休眠中使用序列。我们目前的做法,是的,这是必要的,因为奇怪的事情开始发生,比如生成负值的序列。
0赞
jhonatapers
2/28/2023
我在答案中添加了另一种生成序列的方法
评论
ddl-auto