Java JPA选择有两个条件

Java JPA选择有两个条件,java,jpa,Java,Jpa,请帮助我为JPA添加两个条件 我有实体科目(老师的一些科目——数学、生物、编程等等)。 主题有一个字段:布尔删除 @实体 公共课科目{ @身份证 私人长id; 私有字符串名称; 删除私有布尔值; } 我有第二个实体老师。它有设置科目——附属于教师的科目 @Entity @PrimaryKeyJoinColumn(name = "person_id") public class Teacher extends Person { private boolean dele

请帮助我为JPA添加两个条件

我有实体科目(老师的一些科目——数学、生物、编程等等)。 主题有一个字段:布尔删除

@实体
公共课科目{
@身份证
私人长id;
私有字符串名称;
删除私有布尔值;
}
我有第二个实体老师。它有
设置科目
——附属于教师的科目

@Entity
@PrimaryKeyJoinColumn(name = "person_id")
public class Teacher extends Person {
    private boolean deleted;
    Set<Subject> linkedSubjects;
}
@实体
@PrimaryKeyJoinColumn(name=“person\u id”)
公立班主任延伸人{
删除私有布尔值;
设置链接的子对象;
}
因此,我需要得到一份尚未附加到老师的科目列表,这些科目不应该被删除

我可以单独执行此操作–不附加或不删除。但是他们两个是怎么得到的呢

public List findSubjectNotInList(列出teacherSubjects){//teacherSubjects-列出仍然附加到教师的科目
CriteriaBuilder cb=entityManager.getCriteriaBuilder();
CriteriaQuery=cb.createQuery(Subject.class);
Root=query.from(Subject.class);
//获取所有未附加的内容:
//query.select(root.where(root.in(teacherSubjects.not());
//获取所有未删除的内容
query.select(root).where(cb.isFalse(root.get(Subject.DELETED));
List subjects=em.createQuery(query.getResultList();
返回主题;
}
CriteriaBuilder cb=entityManager.getCriteriaBuilder();
CriteriaQuery=cb.createQuery(Subject.class);
Root=query.from(Subject.class);
查询
.选择(根目录)
.在哪里(cb和(
root.in(教师主题).not(),
cb.isFalse(root.get(Subject_u.DELETED))
))

不幸的是,出现了一个错误:无法解析根目录中的方法。第3行应该是Root=query.from(Subject.class)?是的,对不起,我忘了加行了。我会更新答案现在应该可以了哇!它起作用了!非常感谢
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Subject> query = cb.createQuery(Subject.class);
Root<Subject> root = query.from(Subject.class);
query
    .select(root)
    .where(cb.and(
        root.in(teacherSubjects).not(),
        cb.isFalse(root.get(Subject_.DELETED))
    ))