0

晚上好。当我尝试使用数据库连接创建 jpa 实体时,我遇到了一些异常。关于 id 的东西不存在。我怀疑这与某些表没有主键的事实有关。因为当我遍历每个实体并给它一个主键时,错误就消失了。如何在没有主键的表上创建实体?我正在使用 websphere 集成开发人员(wid)顺便说一句。

4

1 回答 1

1

所有实体都有一个 ID,这就是它们的工作方式——或者更准确地说,规范是如何描述它的。如果数据库中有您想要映射到实体的表并且这些表没有主键,那么您可以使用几个选项。

  • 将生成的 Id(由 JPA 或 DB 管理)添加到表中 - 如果您有这种自由,建议您这样做。
  • 使用表中的几个现有列作为实体 ID(选择所需的最少数字以确保 ID 变得唯一)。
  • 使用所有列,即使理论上它们的组合可能不是唯一的(会弄乱表/数据库,因此即使在 java 层中也应注意不要让这种情况发生)
  • ...可能是我现在想不到的更多选择

通过搜索 JPA 和 CompositeKey 应该很容易找到有关如何执行替代 2 和 3 的信息。

祝你好运

于 2012-03-18T23:08:08.207 回答