簡體   English   中英

HQL:如何使“不存在”查詢?

[英]HQL:How to make Not Exists Query?

我在“ utilisateur”和“ projet”之間有一個ManyToMany關系,我想提取項目實體中不存在的所有用戶,這是我的查詢:

Query req=utilisateurDAO.createQuery("select u from utilisateur u where not in(select p from projet p where p.utilisateurs.iduser=u.iduser) ");

這是“ Projet”實體:

        @Entity
        public class Projet implements Serializable {
             @Column(name = "idprojet", nullable = false)
             @Id
             @GeneratedValue(strategy=GenerationType.IDENTITY)  
             Integer idprojet;
             @ManyToMany(mappedBy="projets", fetch = FetchType.LAZY)
             java.util.List<com.gestion.projet.domain.Utilisateur> utilisateurs;
    }

這是“ Utilisateur”實體

 @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;
}

而且我不知道為什么不起作用?

HQL支持子選擇以及集合表達式。

項目實體中不存在的所有用戶表示沒有分配項目的所有用戶,或項目列表為空的用戶:

select u from Utilisateur where u.projets is empty

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM