【发布时间】:2021-01-21 03:27:27
【问题描述】:
通过 SQL 可以定义一个序列,例如CREATE SEQUENCE sequence_name。
可以使用 JPA 定义吗?我只知道在实体属性上定义的序列。我想避免仅仅为了能够定义一个序列而创建一个实体。
【问题讨论】:
-
你是如何使用这个序列的?
-
我有一个遗留表(在一个错误的数据库方案中),我需要在其中识别组。我可以使用 group by 来做到这一点,但为了让我的查询简单,并且因为我需要以编程方式添加新组,我决定添加一个 group_id 列作为假 1:N。我需要自动递增的序列,这样我就可以使用它为新的记录组生成 id。
-
您说您不喜欢为序列创建实体,但您似乎已经有一个实体,以group_id为列,您不能为它定义序列字段,还是我理解错误?
-
如果它们是独一无二的,那就是。但是由于这种丑陋的 hack,多行将具有相同的 group_id。如果这个表的实体有一个属性绑定序列,它会随着每个添加的行增加序列。因此,我需要以编程方式设置 group_id,并随着每个添加的组递增序列。
-
TBH 我建议不要对“非独立”序列使用模式生成。或者用于生成任何东西,就此而言。最好使用 Flyway 或 Liquibase 等数据库迁移工具
标签: java sql jpa spring-data-jpa