我正在尝试用JPA规范解决以下问题:
考虑以下课程:
public class Language {
private String name;
...
}
public class Person {
private List<Language> languages;
...
}
如何选择所有使用名称为Person
的语言的x
?我正在寻找使用CriteriaBuilder
的解决方案,该解决方案应生成Predicate
我可以&#39;和&#39;与其他谓词一起使用。
提前致谢。
答案 0 :(得分:0)
实际上非常简单:
<button class="bt-save" ng-disabled = "allowButtonClick()">Save</button>
因此,您基本上通过相应的关联加入语言,然后添加与您的标准匹配所连接实体的必需属性的CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Person> query = cb.createQuery(Person.class);
Root<Person> root = query.from(Person.class);
ListJoin<Person, Language> langJoin = root.join(Person_.langs);
query.where(cb.equal(langJoin.get(Language_.name), lang));
谓词。