这是this问题的扩展。
而不是SQL,我如何使用HQL做同样的事情? (即找到所有同时具有黑色和白色但可能有其他颜色的狗)
假设我的实体类看起来像这样:
public class Dog {
private Long id;
private Set<DogColor> colors;
private String name;
private String size;
...
}
public class DogColor {
private Long id;
private String color;
...
}
然后我希望我的HQL看起来像这样:
from dog where dog.colors contains ("black", "white")
显然这只是伪代码,因为dog.colors是一个对象,而不是颜色字符串。
答案 0 :(得分:3)
Select d from dog d join d.colors o where o.color in ("black","white")
当然,您需要设置正确的映射