argsのfetch()メソッドの型はSingularAttribute、PluralAttribute、ListAttributeにできないのはなぜですか?criteria api - root.fectch()コレクションを取得する方法は?
次に、critria apiを使用してコレクションを取得するにはどうすればよいですか?ありがとうございました。
argsのfetch()メソッドの型はSingularAttribute、PluralAttribute、ListAttributeにできないのはなぜですか?criteria api - root.fectch()コレクションを取得する方法は?
次に、critria apiを使用してコレクションを取得するにはどうすればよいですか?ありがとうございました。
もちろん、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);
ListAttributeはコレクションに基づく任意の属性と同様に、PluralAttributeを拡張します。実際にroot.fetch(ListAttribute)を使用しようとしましたか?
右のかもしれないですこと。私は長い間クエリのための基準apiを書いていない。現在私は常にJPQLを使用しています。ありがとうございました。 –