【发布时间】:2016-01-18 16:05:30
【问题描述】:
在我的用例中,我有以下设置:合同有一个人和一个提供者相关联。因此,合同在persons 表和providers 表上有一个外键。所以在 CriteriaApi 中,我加入了 Contract 和 Person 和 Provider:
Root<Contract> contract = ...
Join <Contract, Person> person = contract.join(Person.class);
Join <Contract, Provider> provider = contract.join(Provider.class);
检查一个人的某些值的构建谓词效果很好,例如
cb.like(person.get(Person_.lastname), lastname);
对于提供者,情况有所不同,因为我已经有 ProviderEntity 可以加入。但是我没有找到以
的方式告诉 CriteriaApi 一些事情的方法cb.is(provider.get(Provider_), provider);
如果我已经拥有包含主键的实体(而主键又没有映射到 Provider_ 中),那么根据某个字段搜索提供者似乎有点愚蠢。
由于我在 Spring Data 的上下文中工作,顺便说一下,我只能定义规范而不是完整的查询。 :-)
【问题讨论】:
标签: criteria-api