当前位置: 首页 > 知识库问答 >
问题:

如何获取父实体?

陈刚洁
2023-03-14

我将JPA2与Hibernate一起使用。有两个实体类,CardElementIdentityDocumentKind。最后一个是第一个的继承实体。使用SINGLE_TABLE继承策略。当我尝试通过从id=“123456”的CardElement中查询选择父类的实例时,会发生以下错误:

ID为123456的对象不属于指定的子类:org.cp.CardSystem.CardElement(鉴别器:SDocClass)

我没有“SDocClass”鉴别器值的子类。实际上,在开发IdentityDocumentKind类时,在整个应用程序中广泛使用了CardElement的查询。所以我不能为每个鉴别器值创建CardElement的子类,并在所有存在的查询中用它替换CardElement。这对我来说要付出太多的努力。当使用SINGLE_TABLE继承策略时,是否有方法实例化父实体类?


共有1个答案

冯鸿光
2023-03-14

我不确定我是否正确理解了你的问题。您正在使用单表策略来存储整个继承层次结构。但是,您只映射了一些鉴别器,而这一次,是未映射的鉴别器导致了问题(因为Hibernate不知道该子类的含义)。我对你的问题理解正确吗?

考虑使用特殊的DB视图,而不是真正的表。该视图仅公开具有您可以处理鉴别器的记录。

 类似资料:
  • 问题内容: 这段代码是在b.py中获取templates / blog1 / page.html: 但我想获取父目录位置: 以及如何获得父位置 谢谢 更新: 这是正确的: 要么 问题答案: 您可以重复应用dirname来爬高:。但是,这只能到达根包。如果有问题,请使用:。

  • 问题内容: 在Objective-C中,我用于获取父URL。在Java中这相当于什么? 问题答案: 我能想到的最短的代码段是这样的:

  • 在Objective-C中,我使用获取父URL。这在Java中的等价物是什么?

  • 我有vehicleId和vehicleName的值,我想从这两个属性值中获取User对象。 我不想创建一个车辆存储库仅仅是为了找到用户对象,我知道可以通过创建一个车辆存储库来实现,它扩展了springdatajpa中的JPA存储库。

  • 问题内容: 我对Java(作为C ++程序员)有一点疑问。 我有2个相关课程: 这将输出: org.example.smartgwt.server.model.PatientPersistent类 有没有一种方法可以获取父类的类型?即 org.example.smartgwt.server.model.Patient类。 这将使我能够概括一些我需要在每个可怕的孩子中实现的方法。 谢谢! 更新 我正

  • 我使用的是Spring数据jpa。将子实体添加到父实体后,我将父实体保存到数据库。我想得到孩子的身份证,但我发现我得到的是空的。 我在getId()方法中添加了@GeneratedValue(Strategy=GenerationType.IDENTITY),但它不起作用。 以下是模型: 父实体已经在数据库中,所以我直接找到它,父存储库entends Jpa列举 这里是我的测试代码: 我得到的输出