我在Utilisateur
和Projet
之间有一个ManyToMany关系,我希望提取项目实体中不存在的所有用户以及分配给“Terminé”的用户(statut的值:{{1 }} property)项目然后这是我的查询:
Projet
生成的sql查询:
select u from Utilisateur u left join u.projets p where p is null and p.statut like 'Terminé'
这是我的Hibernate: select utilisateu0_.iduser as iduser5_, utilisateu0_.datederniereconnexion as datedern2_5_, utilisateu0_.email as email5_, utilisateu0_.grade as grade5_, utilisateu0_.login as login5_, utilisateu0_.mdp as mdp5_, utilisateu0_.nomuser as nomuser5_, utilisateu0_.tel as tel5_ from
public.utilisateur utilisateu0_ left outer join projet_utilisateur projets1_ on
utilisateu0_.iduser=projets1_.utilisateurs_iduser left outer join public.projet projet2_ on
projets1_.projets_idprojet=projet2_.idprojet where (projet2_.idprojet is null) and
(projet2_.statut like 'Terminé')
实体:
Projet
这是@Entity
public class Projet implements Serializable {
@Column(name = "idprojet", nullable = false)
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
Integer idprojet;
String statut;
@ManyToMany(
mappedBy="projets",
fetch = FetchType.LAZY)
List<Utilisateur> utilisateurs;
}
实体:
Utilisateur
问题是它没有显示任何用户
答案 0 :(得分:1)
从您的评论:我想提取没有任何项目的用户以及拥有该项目法规为“Terminé”的项目的用户
我认为您希望在OR
条件中使用AND
代替WHERE
:
select u
from Utilisateur u
left join u.projets p
where p is null
or p.statut = 'Terminé'