Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JPA中@OneToMany和抽象的问题_Jpa - Fatal编程技术网

JPA中@OneToMany和抽象的问题

JPA中@OneToMany和抽象的问题,jpa,Jpa,我有一对多关系的问题。我有一个抽象类Artifact.java。这未映射到表。还有其他具体的类从这个扩展而来,它们被映射到不同的表。现在我有了另一个类,映射到一个表,这个类可以有这些类中任何一个的集合,即Artifact.java类型的集合。我需要使用JPA来映射它,并按如下方式完成 @OneToMany(mappedBy="artifactId",targetEntity=Artifact_Item.class, fetch=FetchType.EAGER, cascade=C

我有一对多关系的问题。我有一个抽象类Artifact.java。这未映射到表。还有其他具体的类从这个扩展而来,它们被映射到不同的表。现在我有了另一个类,映射到一个表,这个类可以有这些类中任何一个的集合,即Artifact.java类型的集合。我需要使用JPA来映射它,并按如下方式完成

@OneToMany(mappedBy="artifactId",targetEntity=Artifact_Item.class,
        fetch=FetchType.EAGER, cascade=CascadeType.ALL)
private List<Artifact_Item> artifactItemList;
谁能帮我解决这个问题

谢谢

好的,我重新措辞这个问题。 我有一个类,Artifact.java,它被映射到表Artifact。现在每个工件可以有多个子项(一对多),这些子项在任何情况下都不相关。因此,我们决定使用一个抽象类ArtifactItem.java,以便所有子项都可以扩展它。因此,工件具有工件活动项列表

java,并且未映射到表。它包含两个元素,一个id和一个artifactId,用作外键。Id已标记为@GeneratedValue(strategy=GenerationType.AUTO),artifactId标记为@ManyTone(targetEntity=Artifact.class) @JoinColumn(name=“artifact\u id”,referencedColumnName=“id”)。该类被注释为@MappedSuperclass

有许多子项,扩展了ArtifactItem。每个都有自己的表,例如,ArtifactType1.java有自己的字段,并映射到ArtifactType1表等等

现在,由于Artifact.java的列表需要映射到ArtifactItem,因为该列表是ArtifactItem的集合。但是当我试图以上面提到的方式映射它时,我得到了上面给出的异常

希望它现在更清晰:)


谢谢

ArtifactItem
上使用
@MappedSuperclass
(去掉下划线)

你能重新表述你的问题以使你的类之间的关系更清楚吗?嘿,伙计,@MappedSuperclass已经添加到那个类:(.我也重命名了这个类,我的坏:)。
org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: dao.model.Artifact.artifactItemList[dao.model.Artifact_Item]