【发布时间】:2011-02-03 21:20:50
【问题描述】:
大家好, 我有三张桌子儿童、宠物和玩具。宠物有一个孩子ID的引用键,玩具有一个狗ID的引用键。 我想加载关于一个孩子和他的宠物的所有数据,但我不想加载玩具数据
@OneToMany(mappedBy = "petEntity", fetch = FetchType.LAZY)
public Set<PetEntity> getPetEntitySet() {
return petEntitySet;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ChildId", insertable = false, updatable = false)
public ChildEntity getChildEntity() {
return childEntity;
}
一套玩具也一样。
加载我拥有的数据
List<ChildEntity> list = entityManager.createQuery(
"SELECT c FROM ChildEntity c "+
"LEFT JOIN FETCH c.petEntitySet ",
ChildEntity.class).getResultList();
return list;
但是这个东西会加载我所有的数据,而不仅仅是关于孩子和他的宠物的信息。
如何禁止实体管理器仅加载表中的数据,而不是在我不想要的时候进行连接
感谢您的建议
我忘了提到,在这个追逐中,它不仅加载所有数据,而且返回的不仅仅是一个子元素的副本
【问题讨论】:
-
你认为它为什么会加载所有数据?
标签: jpa select lazy-loading distinct fetch