我有一个具有属性角色的用户域类:

@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(
        name = "user_role",
        joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"),
        inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"))
private Set<Role> roles;

我正在尝试创建JPA规范对象,以过滤具有给定角色的用户(假设您可以选择要显示的角色) . 问题是CriteriaBuilder没有提供任何类似的交叉来将所选角色与用户的角色相交 . 是否有可能以某种方式迭代所有角色,使用表达式'in / memberOf'逐个创建谓词,将它们放入集合中并最终将它们组合起来?或者你会怎么做?