当序列生成器在实体中具有主键时,如何避免重复记录的插入

时间:2019-01-18 06:06:33

标签: database spring spring-boot spring-data-jpa

当前,我有一个实体类,该实体类具有将生成的ID序列作为主键。 每次用户调用其余api时,记录都会插入到数据库中。

每个记录将具有两种状态(失败和成功)。 根据目前的设计,我的实体允许很多失败 和成功,因为序列ID 是主键。

我的新要求是

1.Allow only one SUCCESS Record.
2.Allow many FAILURE records (This for auditing purpose.I have No option to capture the both the records into same table.)

我提出的解决方案

在插入之前,我们正在检查该用户可用的任何成功记录, 如果可用,我们不允许插入记录;如果没有,我们不允许插入记录。

这是在将数据插入db之前我们要进行的手动检查。

我一直在寻找“可以使用Spring Data JPA在没有手动检查的情况下实现这一最佳方法”,寻找这种场景的最佳模式,在几个实体中,我必须实现相同的场景。

我找到了一个名为Persistable的接口,使用该接口如何实现上述目标?我用谷歌搜索,但是在实现方面却找不到很多信息。

有什么条件可以保持数据库表级别?这可能吗?有什么建议吗?

我正在使用spring数据jpa和oracle数据库

0 个答案:

没有答案