//获取所有班级
List<Grade> allGrades = gradeService.getAll();
Exam exam = examService.getWithGrades(examId);
//获取拥有的班级
Set<Grade> rightGrades = exam.getGrades();
//从所有班级中删除拥有的班级
allGrades.removeAll(rightGrades);
要达到效果,必须重写Grade对象的equals方法和hashcode方法.
@Override
public boolean equals(Object obj) {
Grade grade = (Grade) obj;
Long objId = grade.getId();
if (objId != null && id != null) {
if (objId.equals(id)) {
return true;
}
}
return super.equals(obj);
}
@Override
public int hashCode() {
if (id != null) {
return id.intValue();
}
return super.hashCode();
}