Jpa @oneToMany实体中的表\每\类继承策略给出了重复的结果

Jpa @oneToMany实体中的表\每\类继承策略给出了重复的结果,jpa,eclipselink,jpa-2.0,Jpa,Eclipselink,Jpa 2.0,Eclipselink 2.6.3和JPA2.0 我对TABLE_PER_类继承策略有一个问题,正如您可以看到的,我有一个类A,它有@oneToMany映射,有类Z,它有TABLE_PER_类,它的子类是X和Y,所有类(X,Y,Z)都有相同的表名,即TABLE_Z 当我在类上查询并获取zlist的结果时,它有相同的数据重复所有三个类X、Y、Z,但我只需要类Z,正如我在将目标实体映射为类Z中提到的那样 有人能告诉我我做错了什么吗 甲级 @Entity @Table(name="TABLE_A")

Eclipselink 2.6.3和JPA2.0

我对TABLE_PER_类继承策略有一个问题,正如您可以看到的,我有一个类A,它有@oneToMany映射,有类Z,它有TABLE_PER_类,它的子类是X和Y,所有类(X,Y,Z)都有相同的表名,即TABLE_Z

当我在类上查询并获取zlist的结果时,它有相同的数据重复所有三个类X、Y、Z,但我只需要类Z,正如我在将目标实体映射为类Z中提到的那样

有人能告诉我我做错了什么吗

甲级

@Entity
@Table(name="TABLE_A")
@Customizer(ACustomizer.class)
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@ClassExtractor(AExtractor.class)
@InstantiationCopyPolicy
@Cacheable
@Cache( alwaysRefresh=true,
        refreshOnlyIfNewer=true,
        expiry=300000,      
        coordinationType = CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES)
public class A implements Serializable {
@Column(name="ABC")
private String abc;
//the problem is with this relationship...fetches multiple objects for same data with X,Y,Z classes
@OneToMany(cascade=CascadeType.ALL, mappedBy="aobj", targetEntity=Z.class)
private List zlist= new ArrayList<>();

}
X类

 @Table(name="TABLE_Z")
   @Entity
    public class X extends Z{
     //some fields 

    }
类似于这个问题,除非子类要使用自己的表,否则不应该使用每个类的表继承。将它们全部放在“TABLE_Z”中应该配置为使用单表继承,JPA需要一种方法来判断哪一行属于哪一个子类。类似于问题,这个问题的副本不应该使用每类表继承,除非子类将使用它们自己的表。将它们全部放在“TABLE_Z”中,应该将其配置为使用单表继承,并且JPA需要一种方法来告诉哪一行属于哪一个子类。
 @Table(name="TABLE_Z")
   @Entity
    public class X extends Z{
     //some fields 

    }