我在集合上使用querydsl。 我正在尝试获取另一个列表中包含的所有元素。
public class Parent {
private List<Child>;
}
public class Child {
private String key;
private String value;
}
由于Child对象的具体列表(List<Child> lovedChilds
),我需要选择的每个父对象都包含在lovedChilds
中。
List<Parent> parents = ...;
for (Parent parent in parents)
{
select
from (child, parent.childs)
where lovedChilds contains a lovedChild
where child.getKey.equals(lovedChild.getKey);
}
答案 0 :(得分:0)
由于你有一个 n:m关系,你应该在某个地方有一个交叉表。
我认为parent2child
的列为parent
和child
(相应ID列的外键)。
只需执行加入:
select * from parent join parent2child join child where child.key in lovedChildren
如果您只想获取一次父对象,可以添加group by
或distinct
。