[英]JPQL query for many to many relationship where item does not exist in join table
我正在嘗試構造一個JPQL查詢,以僅選擇組中不存在的VM。 我在虛擬機和組之間有很多關系:
類組:
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(
name="group_vm",
joinColumns={@JoinColumn(name="group_id", referencedColumnName="id")},
inverseJoinColumns={@JoinColumn(name="vm_id", referencedColumnName="id")}
private Set<VM> vms;
在SQL中,這相當簡單:
選擇* from vm,其中id不在其中(從group_vm中選擇vm_id);
在JPQL中有辦法嗎?
使用不存在
select vm from VM vm where not exists (select 1 from Group gr where vm member of gr.vms)
NOT IN也應該起作用,但是存在可能更快
select vm from VM vm where vm not in (select gr.vms from Group gr)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.