【发布时间】:2018-09-15 07:38:41
【问题描述】:
我正在使用带有 eclipse 链接的 spring boot (2.0.0) 将数据(超过 500 个实体类)保存到 postgres db (6.5)。那效果很好。为了通过 REST 接收数据,我构建了另一个 Spring Boot 应用程序。这里我对 JPA 有一些继承问题(抱歉我的绘图):
C类和D类(抽象)继承自B类。A类有一个对B类的引用(attribute1)。这个属性是实体类E的一个实例,它继承自抽象类D。我正在使用继承策略每班表。每个类都使用带有表名的注释实体。在数据库中,A 类的表对 E 类的表具有正确的外键,但如果我想读取数据,则属性 1 为空。我从日志级别看到 eclipse 链接只查看 C 类的表内部。我该如何解决这个问题?
向本杰明问好
【问题讨论】:
-
如果我从 d 类中删除摘要,它会起作用
-
如果我从类 d 中删除 @entity 注释会得到错误:使用非实体...作为关系属性中的目标实体...因为在另一个类中我有一个参考它
-
为什么不显示 A 和 B 类/映射?您还首先声明您可以使用 EclipseLink 将这些数据持久保存到数据库中 - 它是如何映射到那里的,如果它有效,为什么不在这里也使用它呢?
-
@Chris 对不起,我可以将这些类保存到数据库中,但我无法通过 eclipselink 检索到这个类。在我的数据模型中:A 类有一个 B 类类型的私有字段(属性 1)。我不想更改数据模型,因为它是一个标准。
-
您仍然需要为我们显示类和映射,以帮助指出它可能出现的问题。
标签: sql spring-boot jpa inheritance eclipselink