用于在多个集合值上获取实体的hibernate查询

时间:2013-01-22 21:20:36

标签: hibernate hql

我想获取一个包含两个匹配集合实体的实体。

public class A {
    long id;
    Set<B> bs;
}

public class B {
    String name;
    String value;
}

如果我有以下表格数据

Table A
ID     Name 
1      pluto
2      earth
3      mars

Table B
ID     A_ID     NAME     VALUE
1       1       abc       123
2       1       xyz       789
3       2       abc       456
4       2       xyz       789
5       3       abc       123

我想获取所有“A”,其中至少有一个B,其名称='abc',值='123'和1 B,名称='xyz',值='789'。我只希望在这个例子中名为'pluto'的A为'earth'没有“abc”的正确值,并且mars缺少“xyz”。

我是否必须使用子选择来执行此操作?

1 个答案:

答案 0 :(得分:0)

您可能想要使用A和B之间的一对多关联...

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/associations.html#assoc-unidirectional-12m

...之后你可以找到很多查询这种关联的例子,例如......

HQL and one-to-many queries