我在“ 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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句