Java HQL:如何进行不存在查询?

Java HQL:如何进行不存在查询?,java,hibernate,jakarta-ee,jpa,hql,Java,Hibernate,Jakarta Ee,Jpa,Hql,“利用者”和“项目”之间有很多关系 我想提取项目实体中不存在的所有用户 那么这就是我的疑问: Query req=utilisateurDAO.createQuery("select u from utilisateur u where not in(select p from projet p where p.utilisateurs.iduser=u.iduser) "); 这是“Projet”实体: @实体 公共类Projet实现可序列化{ @列(name=“idprojet”,null

“利用者”和“项目”之间有很多关系 我想提取项目实体中不存在的所有用户 那么这就是我的疑问:

Query req=utilisateurDAO.createQuery("select u from utilisateur u where not in(select p from projet p where p.utilisateurs.iduser=u.iduser) ");
这是“Projet”实体:

@实体
公共类Projet实现可序列化{
@列(name=“idprojet”,null=false)
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
整型idprojet;
@ManyToMany(mappedBy=“projets”,fetch=FetchType.LAZY)
java.util.List-Utisateurs;
}
这就是“利用者”实体

@实体
公共类利用器实现可序列化{
@列(name=“iduser”,null=false)
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
整数iduser;
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(schema=“public”,name=“join_membre_projet”,joinColumns={@JoinColumn(name=“iduser”,referencedColumnName=“iduser”,nullable=false,updateable=false)},inverseJoinColumns={@JoinColumn(name=“idprojet”,referencedColumnName=“idprojet”,nullable=false,updateable=false)})
java.util.List projets;
}
我不知道为什么不工作?

HQL既支持集合表达式,也支持集合表达式

项目实体中不存在的所有用户是指未分配项目的所有用户,或项目列表为空的用户:

select u from Utilisateur where u.projets is empty
 @Entity
        public class Utilisateur implements Serializable {
             @Column(name = "iduser", nullable = false)
             @Id
             @GeneratedValue(strategy=GenerationType.IDENTITY)  
             Integer iduser;

@ManyToMany(fetch = FetchType.LAZY)
    @JoinTable(schema = "public", name = "join_membre_projet", joinColumns = { @JoinColumn(name = "iduser", referencedColumnName = "iduser", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "idprojet", referencedColumnName = "idprojet", nullable = false, updatable = false) })
    java.util.List<com.gestion.projet.domain.Projet> projets;
}
select u from Utilisateur where u.projets is empty