Допустим, родительский объект - Parent
.Имеет отношение ManyToMany
с ребенком Child
.
@Entity
public class Parent{
@ManyToMany(fetch = FetchType.EAGER)
@JoinColumn(name="child_Id")
private Set<Child> childs;
}
And Child,
@Entity
public class Child{
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinTable(name = "child_parent",
joinColumns = @JoinColumn(name = "child_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "parent_id", referencedColumnName = "id"))
Set<Resource> parents;
}
Предположим, наши родительские объекты:
parent1 has child -> childA, childB, childC;
parent2 has child -> childB, childC;
parent3 has child -> childB, childC, childD;
parent4 has child -> childA, childC;
parent5 has child -> childA, childB, childC, childD;
Теперь я хочу опросить всех тех родителей, у которых есть childA
,childC
вместе.Таким образом, в этом случае родителями будут parent1
, parent4
и parent5
.(parent2 и parent3 не принимаются, поскольку у них нет childA
и childC
вместе)
Моя подпись метода интерфейса JPA.
List<Resource> findParentByChilds (@Param("childs") Set<Child> childs)