捕获oracle序列并将其设置为JPA中的另一个字段

时间:2011-02-18 06:29:30

标签: java hibernate jpa

enity bean生成了序列id(oracle主键)。我们需要以某种方式捕获此序列,并将其设置为另一个字段。例如:

class Entity {
    @Id long id;
    @Column long parentId;
}

这个想法是让parentId与oracle生成的id相同,如果它是空的。例如:

@PrePersist
void prePersist() {
    if (parentId = 0) parentId = id; // but id is not yet generated
}

目前我们使用DB触发器来实现这一点,但这可以在JPA中完成(最好没有特定于hibernate的类)吗?

1 个答案:

答案 0 :(得分:1)

当我们在JPA中保留一些entity时,我们的entity对象会被管理,并且此时应填充id。由于它是关于预先存在的,而不是后期持续存在,因此您不会填充您的ID。