我使用 OpenJPA 作为 ORM 工具。
我在坚持一个实体时遇到了一个问题。我已经使用序列生成器进行 id 生成,效果很好。但是有一种情况会导致问题。
假设表中已经有一些实体。现在我重新部署了我的应用程序并保留了一个新实体。JPA 会生成一个 id,但表中可能已经存在具有相同 id 的实体。这会导致持久性错误。所以我希望 JPA 生成的值大于表中已经存在的最高 id。
如何才能做到这一点?
我使用 OpenJPA 作为 ORM 工具。
我在坚持一个实体时遇到了一个问题。我已经使用序列生成器进行 id 生成,效果很好。但是有一种情况会导致问题。
假设表中已经有一些实体。现在我重新部署了我的应用程序并保留了一个新实体。JPA 会生成一个 id,但表中可能已经存在具有相同 id 的实体。这会导致持久性错误。所以我希望 JPA 生成的值大于表中已经存在的最高 id。
如何才能做到这一点?
在开始使用序列之前,将其当前值更改为高于当前最大 id。例如,这是在 Oracle 中执行此操作的方法;请查阅您的数据库提供商的文档。