2013-08-25 33 views
0

所以我有一個休眠實體(可以稱之爲動物園)有許多一對多的關係,建立這樣的:匹配*與Hibernate的標準列表中的所有*項目

@ManyToMany(cascade = {}) 
@JoinTable(name = "animal", 
    joinColumns = @JoinColumn(name = "zoo_id"), 
    inverseJoinColumns = @JoinColumn(name = "animal_id")) 
@LazyCollection(LazyCollectionOption.FALSE) 
public List<Animal> getAnimal() { 
    return animals; 
} 

所以現在我想找到動物「獅子」,「老虎」和「熊」的所有動物園。現在我不在乎他們是否有其他動物,但我不想只有老虎和mar猴的動物園。我應該使用什麼樣的標準給出動物名稱列表以匹配列表中的所有元素?如果我使用Restricions.in,我將獲得至少有一個動物園,但不一定是所有動物的要求。

感謝

回答

0

您可以使用下面的查詢,那我就讓你翻譯成標準:

select zoo from Zoo zoo 
where 3 = (select count(distinct animal.name) from Zoo zoo2 
      join zoo2.animals animal 
      where zoo2.id = zoo.id 
      and animal.name in ('lion', 'tiger', 'bear')) 
相關問題