我有一个父实体ParentClass。在这个父实体中,我有一个子类列表,如下所示: -
public class BaseClass{
@Id
private Long id;
}
@Entity
public class ParentClass extends BaseClass{
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private List<ChildClassA> childClassAList;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private List<ChildClassB> childClassBList;
}
在我的数据库中,我只有一条映射到ParentClass的ChildClassA记录(假设我的parent_class记录的id为25001,并且在我的第三个表中它们只是一个映射到此父[来自ChildClassA实体]的子项,例如45001)。但是当我调试parentClass.getchildClassAList()时,它显示了这个列表中的2个项目(并且它们都具有相同的ID)而不是一个单独的记录,如下所示: -
ParentClass parentRecord = myDao.find(ParentClass.class,25001L); //shows only one record which is expected.
List<ChildClassA> allChildsOfParent = parentRecord.getchildClassAList(); //shows 2 items in list,each with same id 45001 even though the third table in db carries one single record corresponding to this parent with id 25001.
这个问题的可能原因是什么?任何帮助将不胜感激。
答案 0 :(得分:1)
尝试将{而不是列表用于@OneToMany
关系容器