Я хочу создать предикат для выбора в моем репозитории
class A {
@id
id
@OneToMany(mappedBy = 'A')
Set<B> classesB;
}
class B {
@ManyToOne
@JoinColumn(a_id)
A a;
}
У меня есть таблица A с идентификатором
id | data
1 | asd
2 | df
И у меня есть таблица B
id | data | a_id
1 | item1 | 1
2 | item2 | 1
3 | item2 | 2
Мне нужно выбрать A, где есть a_id в B и где данные равны Списку данных
У меня есть код только для одного типа, но мне нужно получить список не дублированных A и по типам списков вместо одной строки
private static Specification withData(CriteriaBuilder cb, Root<A> root, String type {
Join<A,B> join = root.join("classesB");
return cb.equal(join.get('a'),type);
}