假设我们有群组 - >成员(ManyToMany)
使用一组给定的成员 - 如果为这些成员创建了一个组,最实用的方法是什么? (没有额外或缺席的成员)
这感觉不对,因为Group似乎是由它的状态定义的,但是系统要求我们只有一个Group用于特定的成员组合(包括订单!)
编辑:
我正在寻找一种使用JPA来实现这一目标的方法 - 所以Set.retainAll似乎并不适用。
我所说的是,这将是完美的:
List<Member> members;
... // members gets assigned
TypedQuery<Group> query = entityManager.createQuery("select g from Group g where g.members = ?", Group.class)
query.setParameter(1, members);
Group group = query.getSingleResult();
当然,这不是它的工作原理。考虑最差的实现
List<Group> groups = entityManager.createQuery("select g from Group g", Group.class).getResultList();
for (Group g: groups) {
if (g.getMembers().equals(members)) {
return g;
}
}
这两者之间的某个地方必须是我所缺少的东西。
答案 0 :(得分:1)
您可以尝试使用两套Set.removeAll()
或Set.retainAll()
。
答案 1 :(得分:0)
正如我在评论中所述,使用哈希是我能找到的唯一方法,让我相信无法通过查询集合。