【发布时间】:2021-11-27 04:19:40
【问题描述】:
我有一个实体,除了主键之外,还应该生成一个额外的唯一标识符:
@Entity
class MyEntity(
val otherId: String // <- this id is unique as well
) {
@Id
@Generated
var id: UUID // PK
}
otherId 属性值是通过调用 SELECT nextval(...) 并添加前缀字符串从 postgres 序列值派生的。当我进行批量插入时,我必须求助于在我的 JPA 存储库中为实体定义的自定义查询,该查询一次检索多个序列值,但我想让这个过程自动化。
我尝试实现IdentifierGenerator 接口,但我能达到的最好效果是为每个插入的新实体进行一个SELECT nextval 查询,这在我的情况下是完全不可接受的,因为批次可以包含数百个实体。深入研究休眠细节也没有给我答案。
有没有办法通过一些回调/挂钩一次为多个实体生成多个 ID?还是我还得自己动手?
【问题讨论】:
标签: postgresql hibernate kotlin jpa