0
私はTeacher
クラスにコースのリストを含んでいますが、今はハイバーネイトcriteria
と制限を使用してこのコースのリストをフィルタリングする方法がわかりません。あなたは、あなたのコレクションのaliasを作成する必要がハイバーネーションの制限ManyToMany
EntityManager em = getEntityManager();
CriteriaBuilder builder = em.getCriteriaBuilder();
List<Teacher> result = Collections.EMPTY_LIST;
CriteriaQuery<Teacher> criteria = builder.createQuery(Teacher.class);
Root<Teacher> from = criteria.from(Teacher.class);
if (searchCriteria != null) {
List<Predicate> restrictions = new ArrayList<Predicate>();
if (searchCriteria.getCourse() != null) {
//Here I don't know how to make the restrictions on Set of
//courses
restrictions.add(builder.equal(from.get("courses"),
searchCriteria.getCourse()));
}
addRestrictionsToCriteria(restrictions, criteria, builder);
}
コースのエイリアスを作成し、そのエイリアスを[制限]で参照します。私は少しだけ完全な回答を投稿しようとします –