当您要获取的实体具有对抽象类的引用但您想要获取仅属于一个可能的继承类的属性时,是否可以使用FetchGroup。
例如......
宠物拥有者(所有者是抽象类),所有者可以是个人或庇护所。一个人有一个属性......让我说年龄,我想要那个。
public Pet findPetSlim(Integer id) {
Pet result = null;
FetchGroup group = new FetchGroup("PetSlim");
group.addAttribute("id");
group.addAttribute("owner.age"); //this will not work because owner doesn't have age
Query q = getEntityManager().createQuery("Select p from Pet p where p.id = :id").setParameter("id", id);
q.setHint(QueryHints.FETCH_GROUP, group);
result = (Pet) q.getSingleResult();
return (result);
}