3

我正在使用 JPA CriteriaBuilder api 生成查询,我有以下一组 bean:

  • 艺术家(包含艺术家数据,如姓名、性别、地址等)
  • 角色(包含艺术家扮演的角色,如角色 ID、角色类型、角色描述等)

艺术家可以扮演不同的角色,因此它是一对多的关系 b/w Artist & Role 实体。我想使用criteriabuilder编写一个查询来获取所有没有扮演“HERO”角色的艺术家:

我发现criteriabuilder api提供了处理集合的功能,例如:

<E,C extends Collection<E>> Predicate isNotMember(Expression<E> elem,
                                              Expression<C> collection)

但是,我在互联网上找到的这些函数的示例主要是使用字符串集合。正如本网站(http://www.objectdb.com/java/jpa/query/jpql/collection)上给出的那样,检查语言集合不包含法语:

Predicate m4 = cb.isNotMember("French", languages);

如何使用与实体相同的函数“isNotMember”来获取所有不具有角色类型为 HERO 的角色的艺术家?

4

0 回答 0