0

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

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

我想获取至少有 1 个 B 且 name='abc' 和 value='123' 和 1 B 且 name='xyz' 和 value='789' 的所有“A”。在此示例中,我只想要名为“pluto”的 A,因为“earth”没有正确的“abc”值,并且 mars 缺少“xyz”。

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

4

1 回答 1

0

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

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

...之后您可以找到大量查询该关联的示例,例如...

HQL 和一对多查询

于 2013-01-22T23:59:14.770 回答