args'的方法类型fetch()可以是SingularAttribute,PluralAttribute,为什么不能成为ListAttribute?
然后,如何使用critria api获取集合?谢谢。
答案 0 :(得分:3)
当然,正如Rasmus Franke所说的那样。只需查看javadocs for FetchParent 或试试这个:
@Entity
public class SomeEntity {
@Id int id;
@OneToMany List<OtherEntity> others;
}
@Entity
public class OtherEntity {
@Id int id;
}
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<SomeEntity> cq = cb.createQuery(SomeEntity.class);
Root<SomeEntity> root = cq.from(SomeEntity.class);
ListAttribute<? super SomeEntity, OtherEntity> listAttribute = root.getModel().getList("others", OtherEntity.class);
root.fetch(listAttribute, JoinType.LEFT);
cq.select(root);
答案 1 :(得分:2)
ListAttribute扩展PluralAttribute,基于集合的任何属性也是如此。你真的尝试过使用root.fetch(ListAttribute)吗?